GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — calls.create() can place the same call twice after a 502 or a dropped connection · Issue #31 · VapiAI/server-sdk-python

calls.create() can place the same call twice after a 502 or a dropped connection #31

New issue
Copy link
New issue
Copy link
Open
Open
calls.create() can place the same call twice after a 502 or a dropped connection#31
Copy link

Description

@zorionarrillaga
zorionarrillaga
opened on Oct 22, 2026
Issue body actions

calls.create() (POST /call) and campaign create (POST /campaign, POST /v2/campaign) are retried by the SDK's default retry policy on any 5xx, 408 or 409, and on a connection dropped before the reply (httpx.RemoteProtocolError). Those errors can come back after Vapi has already started dialling: a gateway timeout, or a proxy losing the reply. POST /call takes no idempotency key, so the retry places a second call.

Against a local mock that dials and then answers the first POST /call with 502, one client.calls.create(...) on vapi 3.0.0 placed two calls to the same number, and the caller only got back the second call id. In production that means the customer's phone rings twice and the org pays for two calls.

Suggested fix: for the three call-placing endpoints, retry only on 429 or when the connection never opened (httpx.ConnectError), and leave every other request as it is.

Since the SDK is generated, I've opened a PR as a proof of concept, with tests, so the change can be carried over to the generator: see the linked PR.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      You are visitor 01402520 — GeezerVison does not store the pages you look up.
      Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.