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

# Internal error

> A code the API is designed never to return on a /v1 route.

This page is the resolution target of the RFC 9457 `type` URI on every `internal_error` problem body: `https://docs.get-exo.com/errors/internal_error`.

\*\*HTTP status: `500` \*\*.

```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
{
  "type": "https://docs.get-exo.com/errors/internal_error",
  "title": "Internal error",
  "status": 500,
  "detail": "An unexpected error occurred.",
  "code": "internal_error",
  "requestId": "req_9f2c41ab7d0e5c18"
}
```

## Why it happens

Every failure the API can anticipate has a 4xx or a 503. A bad token is 401, a missing scope is 403, an unreachable dependency is 503. None of the 80 operations in the published contract declares a 500 response.

This page exists so the `type` URI resolves if one ever escapes, and so the contract is honest about the code existing in the envelope's status map.

## How to fix it

* Retry once with backoff, then stop.
* Report it with the `requestId` from the response body and the route you called. A 500 on a /v1 route is a bug in Exo, not in your request.

## Related

* [`service_degraded`](/errors/service_degraded)
* [Errors](/platform/errors) for the envelope and the full catalogue
