> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getbutter.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Disconnect Codes

> Understanding why a call ended

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.

| Code    | Meaning                 | Common Cause                                           | Action                    |
| :------ | :---------------------- | :----------------------------------------------------- | :------------------------ |
| **200** | OK                      | Successful call termination.                           | None.                     |
| **404** | Not Found               | The number dialed does not exist.                      | Check the `to_number`.    |
| **408** | Request Timeout         | The recipient's phone rang but wasn't picked up.       | Retry later.              |
| **480** | Temporarily Unavailable | The recipient has no signal or is in DND.              | Retry later.              |
| **486** | Busy Here               | The recipient rejected the call or is on another line. | Retry later.              |
| **503** | Service Unavailable     | Carrier or Platform issue.                             | Check status page.        |
| **603** | Decline                 | The 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.

| Status        | Meaning                                                                 |
| :------------ | :---------------------------------------------------------------------- |
| `queued`      | The call request has been accepted but hasn't started dialing yet.      |
| `initiated`   | Dialing has begun.                                                      |
| `ringing`     | The recipient's phone is ringing.                                       |
| `in-progress` | Connection established. The bot is listening/speaking.                  |
| `completed`   | Call finished successfully (hung up by either party).                   |
| `busy`        | Recipient was busy.                                                     |
| `no-answer`   | Call timed out without an answer.                                       |
| `failed`      | System error (invalid number, insufficient funds, configuration error). |
| `canceled`    | The 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.
