Errors & Status Codes
Openference aims to return clear errors while protecting upstream details when appropriate.Common status codes
Example error body
Important semantics
- Upstream failures never count against quota. A 529 “Overloaded” capacity response or a 502 upstream error does not consume your plan or credit balance.
- 429 has two causes:
- Plan rate limit — your key exceeded its per-window allowance, weekly cap, or per-minute burst limit. On-demand credits may allow continued use past the per-window allowance and weekly cap.
- Temporary abuse/capacity throttle — a short-lived lower per-minute cap applied to this key only when automated signals detect disproportionate high-volume load that may harm shared model capacity. Credits do not bypass this throttle. This is a rate reduction, not a block — the key keeps serving at the lower rate, so retry shortly at the reduced rate rather than waiting out the throttle. The response includes a short
Retry-Afterheader (seconds until your next retry, typically under a minute — not the full throttle duration) andretry_after_seconds/max_rpmfields in the body.
- 529 vs 429: Capacity issues return 529 Overloaded (with a
Retry-Afterheader) while we fail over or wait for providers to recover. They do not trigger the abuse throttle by themselves during platform-wide capacity events.
Capacity messages you may see
- “We’re experiencing heavy usage right now, which may cause increased latency or temporary unavailability…”
- “The model provider is temporarily unavailable…”