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

# Errors

> One error shape, used by every endpoint.

All endpoints return the same envelope on failure.

```json theme={null}
{
  "error": {
    "code": "invalid_language",
    "message": "Language code 'xyz' is not supported.",
    "request_id": "req_8f2a1c"
  }
}
```

| HTTP status | `code`              | Meaning                                                     |
| ----------- | ------------------- | ----------------------------------------------------------- |
| 400         | `invalid_request`   | Missing or malformed field                                  |
| 400         | `invalid_language`  | Language code not recognised or not supported on this route |
| 401         | `unauthorized`      | Missing or bad API key                                      |
| 403         | `forbidden`         | Key valid, not licensed for this route or language          |
| 404         | `not_found`         | Path does not exist on this image                           |
| 413         | `payload_too_large` | Audio or text exceeds the configured limit                  |
| 429         | `rate_limited`      | Too many requests, see [Rate limits](/api/rate-limits)      |
| 500         | `internal_error`    | Fault on the box, retry later                               |
| 503         | `model_unavailable` | Model not loaded for this language on this image            |

Always log `request_id` from an error response. Support requests without it take longer to trace.
