Calls
Call End Reasons
Every call ends with exactly one end reason. It is the fastest way to tell a successful conversation from a busy signal, a bad prompt, or an infrastructure problem.
Where to find it
The end reason appears on the call log row, in the ended_at webhook payload as ended_reason, and as a filter in Data โ Dashboard so you can chart failure classes over time.
Normal endings
| Code | Meaning | Counts as answered |
|---|---|---|
| customer-ended-call | The caller hung up. The most common ending. | Yes |
| agent-ended-call | The agent finished its goal and hung up intentionally. | Yes |
| operator-hangup | A human ended the call from the live panel. | Yes |
| transferred | Bridged to a human or another agent; the agent left the call. | Yes |
| voicemail-left | Answering machine detected and the voicemail script was delivered. | No |
Caller-side endings
| Code | Meaning | Typical fix |
|---|---|---|
| no-answer | Rang through with no pickup. | Retry in a different time window. |
| busy | Destination line was busy. | Retry with backoff; usually transient. |
| declined | Call actively rejected. | Suppress after two declines. |
| invalid-number | Not a routable number. | Clean the list; validate E.164 before upload. |
| blocked | Carrier or spam filter blocked the call. | See Webhooks โ Spam Rejection and rotate caller ID. |
| do-not-call | Number is on your suppression list. | Expected โ no action needed. |
Limit and policy endings
| Code | Meaning | Typical fix |
|---|---|---|
| max-duration-reached | Hit max_duration_sec. | Raise the cap or tighten the prompt. |
| silence-timeout | No speech from either side past the silence window. | Lower silence_timeout_sec or add a re-engage line. |
| concurrency-limit | Workspace was at its simultaneous-call ceiling. | Slow campaign pacing or request a higher limit. |
| insufficient-credit | Balance ran out mid-call. | Add funds or enable auto-recharge in Billing. |
Error endings
| Code | Meaning | Typical fix |
|---|---|---|
| pipeline-error-llm | The language model failed or timed out. | Add a fallback model in Model Configurations. |
| pipeline-error-tts | Speech synthesis failed. | Check custom TTS credentials, or fall back to a stock voice. |
| pipeline-error-transcriber | Speech-to-text stream dropped. | Check custom transcriber config and region. |
| tool-error | A required tool returned a non-2xx or timed out. | See Troubleshoot Errors. |
| carrier-error | Telephony provider rejected or dropped the leg. | Retry; if persistent, check SIP Integration. |
| unknown-error | Unclassified failure. | Open the call timeline and contact support with the call ID. |
A healthy production workspace sits above 90% normal endings. If pipeline-error-* climbs above 1% of calls, treat it as an incident rather than tuning prompts.
