Skip to main content
When a call ends, the webhook payload includes a status and potentially error codes. Understanding these is vital for debugging connection issues.

SIP Response Codes

If you are using SIP Trunking (or debugging Twilio logs), you may see standard SIP codes.
CodeMeaningCommon CauseAction
200OKSuccessful call termination.None.
404Not FoundThe number dialed does not exist.Check the to_number.
408Request TimeoutThe recipient’s phone rang but wasn’t picked up.Retry later.
480Temporarily UnavailableThe recipient has no signal or is in DND.Retry later.
486Busy HereThe recipient rejected the call or is on another line.Retry later.
503Service UnavailableCarrier or Platform issue.Check status page.
603DeclineThe recipient explicitly blocked the call.Do not retry immediately.

Butter AI Statuses

These are the internal statuses you will see in the API and Dashboard.
StatusMeaning
queuedThe call request has been accepted but hasn’t started dialing yet.
initiatedDialing has begun.
ringingThe recipient’s phone is ringing.
in-progressConnection established. The bot is listening/speaking.
completedCall finished successfully (hung up by either party).
busyRecipient was busy.
no-answerCall timed out without an answer.
failedSystem error (invalid number, insufficient funds, configuration error).
canceledThe call was canceled via API before it was answered.

Common Failure Scenarios

”The number you have dialed is not in service”

  • Cause: The phone number is not assigned to an agent in the Butter Dashboard.
  • Fix: Go to Agents > Phone Numbers and link the number.

Call connects but silence

  • Cause: LLM or TTS provider error.
  • Fix: Check your stt_provider and tts_provider settings. Ensure you haven’t hit a rate limit with OpenAI or ElevenLabs.