unhardcoded
when things go wrong

Troubleshooting

Common errors and how to read the trace to debug a routing decision.

No model passes the floor
Your filter excluded every candidate, so the request fails loudly (no_candidates) instead of silently downgrading. Loosen a cmp bound or a hard ["is", …], and run /x/rank to see which rule dropped each model.
Unknown field or operator
Admission rejects a term that names a field the host doesn't serve or an op the interpreter doesn't know (invalid_policy). Use a real field from GET /x/fields, e.g. price_out, not price.
Provider key missing
The chosen model's provider isn't configured on your host, so the upstream call can't authenticate. Add the provider key to your host; inference always runs over your own accounts.
Provider timeout or error
The selected model errored or timed out; the router fails over to the next passing candidate and writes the hop to the trace. If every candidate fails, the request errors. Widen the cascade with ["top_k", N, ["argmax"]].
Workflow exceeds the limits
A workflow is admitted only within bounds (≤ 256 nodes, in-degree ≤ 32); past that it's rejected before running. Split the workflow.
Dry run passes, live call fails
/x/rank and /x/*/normalize admit and evaluate the term but run no inference, so a live failure is a provider/runtime issue (rate limit, timeout, auth), not a policy error. Read the trace's decision path for the failing hop.
← Back to docs