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

# Errors

If the turn never starts, you get an **HTTP error**. If it starts and then fails, you get an `error` **event on the stream**.

HTTP body:

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{ "error": { "code": "rate_limited", "message": "…" } }
```

On a stream `error` event, `retryable: true` means a model or provider blip — retrying is reasonable. `retryable: false` means the request was wrong — fix it.

| Code                     | HTTP     | Meaning                                                                |
| ------------------------ | -------- | ---------------------------------------------------------------------- |
| `invalid_request`        | 400, 422 | Bad body, or `context` sent on a continue turn.                        |
| `unauthorized`           | 401      | Bad, expired, or revoked API key or client token.                      |
| `insufficient_credits`   | 402      | No credits left.                                                       |
| `conversation_not_found` | 404      | Wrong id, or a token asking for a conversation it is not bound to.     |
| `token_not_found`        | 404      | Revoke was called for a token this vendor does not own.                |
| `turn_conflict`          | 409      | A turn is already running on this conversation. Wait for it to finish. |
| `rate_limited`           | 429      | Per-token or per-vendor cap. Check `Retry-After`.                      |
| `model_unavailable`      | 503      | All model providers unavailable. Retryable.                            |
| `service_unavailable`    | 503      | Token store is temporarily unavailable. Retry.                         |
| `internal`               | 500      | Server error.                                                          |

See [rate limits](/conversations/rate-limits) for `429` caps, and [client tokens](/conversations/client-tokens) for `401` / `404` on tokens.
