Skip to main content
Start from the call’s own record. Every execution carries a status, and every terminated call carries hangup_by, hangup_code and hangup_reason — those four fields identify the cause faster than any amount of re-testing.
1

Read the status

Open the call in Call history, or fetch it with GET /executions/{id}. Match the value against Call statuses.
2

Read the hangup fields

For calls that connected and then ended, hangup_by tells you whether the caller, the agent, or the carrier ended it. Look the code up in Hangup codes.

The call never connects

A call scheduled through the API must be at least two minutes in the future and use a numeric UTC offset such as +00:00. A Z suffix is rejected. See Schedule a batch.

The call connects, then ends too soon

Silence-based hangup

The agent hangs up after a configured period of silence. If callers are being cut off while thinking, raise that limit — see End a call automatically.

Maximum call duration

call_terminate caps total call length. Long support calls hitting a short cap look exactly like a drop.

Voicemail detection

With detection on, a call answered by voicemail is ended deliberately. Check the Call tab if legitimate answers are being dropped.

Carrier disconnect

hangup_by pointing at the carrier, especially in one region, is a routing problem, not an agent problem.

When it is only some calls

Pull a batch of executions with GET /v2/agent/{agent_id}/executions and group failures by status, destination country and telephony provider. A failure concentrated in one country or one provider is a telephony issue; a failure spread evenly is a configuration issue.

Next steps

Call statuses

Every status, explained

Hangup codes

Why the call ended

Retry failed calls

Automatic retries