Debug phone call issues
Debug call disconnection
Understand call disconnection reasons.
You can check the reason why a call is disconnected through the Retell Dashboard or by using the get-call API endpoint.
Understanding Disconnection Reasons
Please note that when phone numbers enagage in a lot of short calls in a short period, it might be marked as spam at
carrier level, which in turn leads to number being blocked and show up as
dial_failed
.Disconnection Reason | Call Status | Description |
---|---|---|
user_hangup | ended | Expected behavior, user hangup the call. |
agent_hangup | ended | Expected behavior, AI agent hangup the call. |
call_transfer | ended | Expected behavior, AI agent transferred the call. |
voicemail_reached | ended | Expected behavior, if AI agent configured voicemail settings, and reached voicemail. |
inactivity | ended | Expected behavior, call was terminated due to the “end_call_after_silence_ms” setting reached after long inactivity. |
max_duration_reached | ended | Expected behavior, call was terminated due to maximum duration reached. |
dial_busy | not_connected | Outbound call not connected, the number dialed in busy. |
dial_failed | not_connected | Outbound call not connected, dailing failed with no or unknown sip error code. |
dial_no_answer | not_connected | Outbound call not connected, the number dialed did not answer. |
invalid_destination | not_connected | Outbound call not connected, the number dialed is invalid. |
telephony_provider_permission_denied | not_connected | Outbound call not connected, the sip trunk credentials are not authenticated. |
telephony_provider_unavailable | not_connected | Outbound call not connected, the telephony provider is not available. |
sip_routing_error | not_connected | Outbound call not connected, the sip routing is going over too many hops or is in a loop. |
marked_as_spam | not_connected | Outbound call not connected, the number dialed is marked as spam. See Spam Likely Overview. |
user_declined | not_connected | Outbound call not connected, user declined the call. |
concurrency_limit_reached | error | Error, concurrency limit reached, add a retry with exponential backoff. Or consider enterprise plan. |
no_valid_payment | error | Error, no valid payment registered on file, or service shut down due to bill overdue. |
scam_detected | error | Error, scam detected for that particular agent. |
error_llm_websocket_open | error | Error, LLM websocket did not open between Retell server and your backend. Likely because the Custom LLM URL is incorrect or your LLM server is not reachable. |
error_llm_websocket_lost_connection | error | Error, LLM websocket connection broke during the call. |
error_llm_websocket_runtime | error | Error, LLM websocket received a closing signal other than 1000 from your server. |
error_llm_websocket_corrupt_payload | error | Error, LLM websocket received unspecified payload. |
error_no_audio_received | error | Error, has not received audio from Twilio or web frontend for a while after connection has established. |
error_asr | error | Error, Retell’s ASR encountered a problem. |
error_retell | error | Error, unspecified Retell side problem. |
error_unknown | error | Error, unknown error. |
error_user_not_joined | error | Error, user did not join web call within 30s after calling startWebCall. |
registered_call_timeout | error | Error, phone call is 30s or more apart from registering. |