Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion fern/advanced/sip/troubleshoot-sip-response-codes.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ A response can originate from Vapi, your SIP provider, your PBX or Session Borde
<Step title="Collect the call context">
Record the call ID, timestamp, call direction, SIP provider, and `endedReason`. The direction determines which signaling path to inspect first.

You can also retrieve `endedReason` from the [Call object](/api-reference/calls/get-call).
You can also retrieve `endedReason` from the [Call object](/api-reference/calls/get).

- For an outbound call, start with Vapi and your outbound SIP provider.
- For an inbound call, start with the originating provider or PBX and the Vapi phone number or trunk configuration.
Expand Down
10 changes: 6 additions & 4 deletions fern/calls/call-ended-reason.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ Start here if a call failed and you want to quickly understand what happened:

| The caller experienced... | Look for these errors | Likely cause |
|---|---|---|
| Phone never rang | `call.start.error-*`, `assistant-not-found`, `*-transport-never-connected` | Account/billing issue, bad configuration, or Vapi infrastructure error |
| Phone rang but no answer | `customer-did-not-answer`, `customer-busy`, SIP 408/480 | Normal behavior — callee was unavailable |
| [Phone never rang](/calls/troubleshoot-call-connection-errors) | `call.start.error-*`, `assistant-not-found`, `*-transport-never-connected` | Account/billing issue, bad configuration, or Vapi infrastructure error |
| [Phone rang but no answer](/calls/troubleshoot-call-connection-errors#the-customer-didnt-answer) | `customer-did-not-answer`, `customer-busy`, SIP 408/480 | Normal behavior — callee was unavailable |
| Call dropped mid-conversation | `*-worker-died`, `phone-call-provider-closed-websocket`, `worker-shutdown` | Network issue or Vapi infrastructure error (usually transient) |
| Assistant went silent or unresponsive | `*-llm-failed`, `*-voice-failed`, `*-transcriber-failed`, `*-429-*`, `*-500-*` | Provider error or credential/quota issue — configure fallback for the affected service, then inspect call logs and test the backup provider |
| Call worked normally, then ended | `assistant-ended-call`, `customer-ended-call`, `silence-timed-out`, `exceeded-max-duration` | Expected behavior — adjust timeout settings if calls end too early |
Expand Down Expand Up @@ -59,7 +59,7 @@ These occur before the call connects, during resource setup.
- `call.start.error-get-phone-number` — Error retrieving the phone number. Verify the number is imported and active.
- `call.start.error-get-customer` — Error retrieving customer information.
- `call.start.error-get-resources-validation` — The assistant, tools, or other resources failed validation.
- `call.start.error-get-transport` — Error setting up the call transport (Twilio, Vonage, etc.).
- `call.start.error-get-transport` — Error setting up the call transport. See [Troubleshoot call connection errors](/calls/troubleshoot-call-connection-errors#the-provider-refused-to-place-the-call).
- `call.start.error-vapifault-database-error` — Internal database error during call setup. Retry or contact [support](/support).
- `call.start.error-vapifault-worker-not-available` — The call's queue time expired before a call worker became available, so the call was not placed. Retry the call.

Expand Down Expand Up @@ -178,7 +178,7 @@ For step-by-step transfer debugging, see [Troubleshoot call transfers](/phone-ca
### Twilio

- `twilio-failed-to-connect-call` — Twilio failed to establish the call.
- `twilio-reported-customer-misdialed` — Twilio reported the customer dialed an invalid number.
- `twilio-reported-customer-misdialed` — Twilio reported the inbound call as busy or unanswered.
- `call.in-progress.twilio-completed-call` — Twilio reported the call as completed on their side.

### Vonage
Expand All @@ -197,6 +197,8 @@ For step-by-step transfer debugging, see [Troubleshoot call transfers](/phone-ca
- `call.in-progress.error-providerfault-outbound-sip-408-request-timeout` — SIP 408: request timed out.
- `call.in-progress.error-providerfault-outbound-sip-480-temporarily-unavailable` — SIP 480: destination temporarily unavailable.
- `call.in-progress.error-providerfault-outbound-sip-503-service-unavailable` — SIP 503: service unavailable.
- `sip-outbound-unallocated-number` — The number called is unallocated or out of service. Check the customer number.
- `sip-outbound-carrier-released-call` — The carrier ended the outbound call before it connected. This is usually temporary, so retry the call.
- `call.ringing.error-sip-inbound-call-failed-to-connect` — SIP inbound call failed during ringing.
- `call.ringing.sip-inbound-caller-hungup-before-call-connect` — SIP caller hung up before the call connected.
- `call.in-progress.sip-completed-call` — SIP provider reported the call as completed.
Expand Down
Loading
Loading