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 ReasonDescription
user_hangupExpected behavior, user hangup the call.
agent_hangupExpected behavior, AI agent hangup the call.
call_transferExpected behavior, AI agent transferred the call.
voicemail_reachedExpected behavior, if AI agent configured voicemail settings, and reached voicemail.
inactivityExpected behavior, call was terminated due to the “end_call_after_silence_ms” setting reached after long inactivity.
machine_detectedExpected behavior, call was terminated due to the “drop_call_if_machine_detected” setting triggering when an voicemail or similar is detected.
max_duration_reachedExpected behavior, call was terminated due to maximum duration reached.
concurrency_limit_reachedError, concurrency limit reached, add a retry with exponential backoff. Or consider enterprise plan.
no_valid_paymentError, no valid payment registered on file, or service shut down due to bill overdue.
scam_detectedError, scam detected for that particular agent.
error_inbound_webhookError, failed to retrieve dynamic variables for inbound phone call.
dial_busyThe number dialed in busy.
dial_failedDailing failed, might be due to callee number is non existent, or the agent number is marked as spam and got blocked.
dial_no_answerThe number dialed did not answer.
error_llm_websocket_openError, 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_connectionError, LLM websocket connection broke during the call.
error_llm_websocket_runtimeError, LLM websocket received a closing signal other than 1000 from your server.
error_llm_websocket_corrupt_payloadError, LLM websocket received unspecified payload.
error_frontend_corrupted_payloadError, frontend audio websocket received unspecified payload.
error_twilioError, Twilio websocket connection between Retell server encountered an error.
error_no_audio_receivedError, has not received audio from Twilio or web frontend for a while after connection has established.
error_asrError, Retell’s ASR encountered a problem.
error_retellError, unspecified Retell side problem.
error_unknownError, unknown error.
error_user_not_joinedError, user did not join web call within 30s after calling startWebCall.
registered_call_timeoutError, phone call is 30s or more apart from registering.