> ## 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.

# Provider error

> An upstream provider Exo depends on returned an error.

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

\*\*HTTP status: `502` \*\*.

```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
{
  "type": "https://docs.get-exo.com/errors/provider_error",
  "title": "Provider error",
  "status": 502,
  "detail": "An upstream provider returned an error.",
  "code": "provider_error",
  "requestId": "req_9f2c41ab7d0e5c18"
}
```

## Why it happens

This code exists in the problem envelope's status map for upstream failures. No operation in the published v1 contract declares a 502 response: dependency failures on the public surface are reported as 503 `service_degraded` instead, because they are retryable rather than terminal.

The page exists so the `type` URI resolves rather than 404ing if the code is ever emitted.

## How to fix it

* Treat it like a 503: retry with backoff, reusing the same `Idempotency-Key` if the call had one.
* Report it with the `requestId` if it persists.

## Related

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