no_route_available means no model in the service’s model list can serve this run. Read this page if a run fails with this code; in almost every case today the fix is to send a decision run.
What happened
Route:POST /v1/runs, verdict runs.
Before it calls a model, OpenType picks one that can serve the run. no_route_available means none could, or that every attempt failed without a more specific error.
Every verdict run gets this code today. Neon 1.1 serves decision runs only, and verdict runs need a capability it does not offer. kind defaults to "verdict", so a request that leaves kind out is a verdict run and fails here, even when its body is otherwise valid.
The run was admitted, then refused before any model was called. You are not charged, and the run’s hold is released, but the run stays
pending. A replay with the same Idempotency-Key returns 202 with "state": "pending".
How to fix
- Send a decision run. Set
"kind": "decision"and express the task as typed questions about astate. A question that picks one of several labels is achoicequestion; a yes/no check is anoulquestion. See Decision runs. - Always send
kind. Do not rely on the default. - Use a new
Idempotency-Keyfor the corrected request. The old key now points at a pending verdict run, and a decision body under it would get409 idempotency_conflict. - Retrying the same verdict request does not help: it gets the same 503.
Example
Related
- Verdict runs - the verdict contract, and why Neon 1.1 does not serve it.
- Decision runs - the request shape that Neon 1.1 serves.
- Idempotency - when to reuse an
Idempotency-Keyand when to send a new one. - Error handling - a status-to-action table and a retry helper for every error.
- Problem codes - every code, its status, and whether a retry can help.