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

# Errors

> Understand Communicate public API status codes and error bodies.

Errors use a stable `code` for program logic and an `error` string for people.

```json theme={null}
{
  "error": "Invalid request body",
  "code": "request_body_invalid",
  "details": [
    {
      "code": "too_big",
      "message": "Message must contain at most 4000 characters",
      "path": "message"
    }
  ]
}
```

| Status | Meaning                                                    |
| ------ | ---------------------------------------------------------- |
| `400`  | Malformed JSON or invalid input                            |
| `401`  | Missing, invalid, or revoked API key                       |
| `403`  | Credential lacks the operation's required scope            |
| `402`  | Billing is paused or credits are exhausted                 |
| `404`  | Agent not found in the key's workspace                     |
| `409`  | Agent inactive, model unavailable, or idempotency conflict |
| `429`  | Rate limit exceeded                                        |
| `503`  | Agent temporarily unavailable during transfer              |
| `500`  | Unexpected server failure                                  |

OAuth token errors use the standard `error` field, including `invalid_client`, `invalid_scope`, `invalid_target`, and `unsupported_grant_type`.
