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

# provider_unavailable

> Stream-terminal code — a non-model upstream the run needs failed or is unconfigured.

**Stream terminal · not an HTTP error.** This code arrives in the typed terminal
`error` event on the run's stream, when a run that started dies because a non-model
upstream it needs — the merchant-resolve vendor, an acquisition provider — failed or
is unconfigured. The run ends with status `error`; only signed receipts settle and
the rest of the reservation is released.

## The shape

```json theme={null}
{ "phase": "error", "message": "search-resolve: vendor request failed", "code": "provider_unavailable" }
```

`message` is prose for humans and may change; program against `code`. The same event
is the last entry of the durable log (`GET …/events`). Stream codes are an
[open enum](/errors#stream-terminal-codes) — handle an unknown code like
[`internal`](/errors/internal).

## How to fix

* **Retry once the upstream recovers** — like
  [`model_unavailable`](/errors/model_unavailable), this is an infrastructure
  failure, not a problem with your query.
* The money contract held: check the run's `spend_usd` — everything beyond signed
  receipts was released.
* If it persists, save the run id and contact support.

## Reproduce it

Rehearse the run-level `error` ending (typed terminal, reservation released) with
the [`FN_TEST_ERROR` sentinel](/guides/test-mode) — deterministic, \$0.
