Provider error code distribution, April 2026
Provider error code distribution, April 2026
Status codes returned by upstream providers on failed responses (router- and gateway-level rejections excluded).
Why do LLM provider requests fail? Among April 2026 requests on the Requesty gateway where the upstream provider returned a non-success response, 65.8% were 429 (rate limit), 19.4% were 400 (bad request: schema mismatches, oversized payloads), and 9.4% were 403 (forbidden). 5xx availability incidents (503, 502, 529, 500, 504, 520) summed to ~4.8%. Router- and gateway-level rejections are filtered out so the chart shows only what providers themselves emit when they fail.
Why it mattersProvider failures are dominated by rate-limiting under agentic load, not by genuine availability incidents. That changes the right mitigation: backoff plus a managed fallback chain absorbs the ~85% of failures that are 429 + 400 without provider changes; only the ~5% 5xx tail is irreducible. Designing retries on the assumption that "providers go down" misallocates engineering effort.
Key findings
- 01429 (rate limit) is the dominant provider failure mode at 65.8%. Providers throttle agentic workloads aggressively.
- 02400 (bad request) is second at 19.4%. Schema mismatches, unsupported parameters, oversized payloads.
- 03403 (forbidden) at 9.4%. Provider-side authorization, region, or model-access denials.
- 045xx total (503, 502, 529, 500, 504, 520) sums to ~4.8%. Real provider availability incidents are uncommon but not zero.
- 05Codes that disappear under this filter (404 collapses from 29.8% to 0.2%, 402 from 17.8% to 0.07%) confirm those rejections are router-level model-not-found and billing checks, not provider failures.
Data
| Status code | Description | Bucket | % of rejections(percent) |
|---|---|---|---|
| 429 | Too Many Requests | auth_quota | 65.83% |
| 400 | Bad Request | client_error | 19.40% |
| 403 | Forbidden | auth_quota | 9.41% |
| 503 | Service Unavailable | server_error | 2.19% |
| 502 | Bad Gateway | gateway | 1.81% |
| 529 | Site Overloaded | server_error | 0.52% |
| 422 | Unprocessable | client_error | 0.24% |
| 500 | Internal Server | server_error | 0.21% |
| 404 | Not Found | not_found | 0.21% |
| 402 | Payment Required | auth_quota | 0.07% |
| 504 | Gateway Timeout | gateway | 0.06% |
| 401 | Unauthorized | auth_quota | 0.02% |
| 520 | Cloudflare Unknown | server_error | 0.02% |
| 499 | Client Closed | client_error | 0.01% |
