Inference API error reference
Search the exact error string you got. Each entry states the HTTP status, the error code, whether waiting fixes it, and the options — including the ones that do not involve us.
Groq
| Status / code | Entry | Can you wait it out? |
|---|---|---|
429 · rate_limit_exceeded |
HTTP 429 rate_limit_exceeded (Groq) A per-minute or per-day counter (RPM, RPD, TPM, TPD) for the model is exhausted |
Per-minute limits: yes, seconds. Per-day limits: no — until the 24h window resets |
413 · rate_limit_exceeded |
HTTP 413 "Request too large for model" (Groq) One request (prompt + history + expected completion) is larger than the model's entire per-minute token budget on your tier |
No. The limit is per request, not per window — the same request fails again after any wait |
404 · model_not_found |
404 model_not_found: llama-3.3-70b-versatile (Groq) Since 2026-08-16, on any free or developer-tier request that names this model (or llama-3.1-8b-instant) |
No — the model was retired; the request will fail until you change the model or the provider |
Billing · upgrade blocked |
Groq: "Developer tier upgrades are temporarily unavailable" You try to move from the Free plan to the Developer plan to raise rate limits |
Only if you can accept free-tier limits until Groq reopens upgrades (no date given) |
404 · model_not_found |
Groq 404 model_not_found: mixtral-8x7b-32768 (shut down March 20, 2025, and its replacement was retired too) | No |
OpenAI-compatible APIs
| Status / code | Entry | Can you wait it out? |
|---|---|---|
404 · model_not_found |
404 model_not_found: "The model … does not exist or you do not have access to it" The id in model is not served by the endpoint you called, or your key is not allowed to use it |
No — it fails deterministically until the id or the endpoint changes |
400 · context_length_exceeded |
400 "This model's maximum context length is N tokens" (context_length_exceeded): why max_tokens counts, and how to fix it | No. Same request, same answer |
Google Gemini
| Status / code | Entry | Can you wait it out? |
|---|---|---|
429 · RESOURCE_EXHAUSTED |
HTTP 429 RESOURCE_EXHAUSTED (Gemini API) A per-minute (RPM / TPM) or per-day (RPD) quota for the model is used up on your tier — most often the free tier's daily request quota |
Per-minute quotas: yes — honour retryDelay. Per-day quotas: no — until the daily reset (midnight Pacific) |
Moonshot AI (Kimi)
| Status / code | Entry | Can you wait it out? |
|---|---|---|
400 · invalid_request_error |
"thinking is enabled but reasoning_content is missing in assistant tool call message": Kimi K2 tool loops fail on the second turn On the second turn of a tool loop: the client sends the conversation back with the assistant's tool call but without the reasoning_content that came with it |
No. It is a validation rule, not capacity |
400 · Extra inputs are not permitted |
"Extra inputs are not permitted, field: safety_identifier": OpenAI-only parameters rejected by Kimi and other strict hosts | No |
Together AI
| Status / code | Entry | Can you wait it out? |
|---|---|---|
400 · Grammar error |
"Grammar error: properties must be an object": tool_choice fails on a tool with no parameters tool_choice is "required" or names a function, and that function's parameters.properties arrives as [] instead of {} |
No. The request is rejected before generation starts |
Anthropic API
| Status / code | Entry | Can you wait it out? |
|---|---|---|
500 · api_error |
Anthropic API Error: Internal Server Error (500) in Claude Code: what it is, and how to keep working | Yes. Anthropic's docs: retry with exponential backoff, and contact support with the request id if it persists. The incidents behind the big threads lasted twenty minutes to a few hours |
429 · plan limit |
Claude Code "You've hit your limit · resets ...": what the Pro and Max windows are, and how to keep working before the reset | Yes, and only that. The window resets at the time shown: up to five hours for the session window, up to a week for the weekly cap |
529 · overloaded_error |
Anthropic API 529 "overloaded_error" in Claude Code: what it means, how long it lasts, and how to keep working | Yes, but not on your schedule. Anthropic's incidents have run from twenty minutes to most of a working day |
400 · credit balance too low |
Anthropic API 400 "Your credit balance is too low to access the Anthropic API": who is being billed, and what to do | No. Adding credit is the fix, and even that has taken hours to a week to register in the reports linked below |
400 · prompt is too long |
Anthropic API 400 "prompt is too long: N tokens > 200000 maximum" in Claude Code: causes and fixes | No. The same input will be too long tomorrow |
Claude Code
| Status / code | Entry | Can you wait it out? |
|---|---|---|
400 · thinking.type |
Claude Code on a third-party model: API Error 400 'type' must be in ["enabled", "disabled", "auto"] | No. Retrying sends the same request. Users report it as intermittent only because load-balanced hosts run mixed backend versions |
Codex CLI
| Status / code | Entry | Can you wait it out? |
|---|---|---|
unsupported call |
Codex CLI: MCP tools return "unsupported call" or are never used with a custom model provider Any MCP server, stdio or HTTP, as soon as the model provider is not OpenAI or Azure |
No. It fails the same way on every request until the request format or the provider changes |
422 · agent_message |
Codex sub-agents return nothing on an external provider: agent_message and the empty "Payload:" On every hand-off to a sub-agent, and again when the sub-agent's answer is replayed in the parent's history |
No |
DeepSeek API
| Status / code | Entry | Can you wait it out? |
|---|---|---|
402 · Insufficient Balance |
DeepSeek API 402 "Insufficient Balance": whose balance, how to tell, and what to do | No. Nothing resets. The error ends when someone adds funds to that account |
429 · 503 |
DeepSeek API 429 "Rate Limit Reached" and 503 "Server Overloaded": the concurrency cap behind both, and your options 429: the account has more requests in flight than its cap. 503 and 500: DeepSeek's capacity is full, most often in its peak-price hours and after a model release |
429 from your own concurrency: yes, in seconds, once requests finish. 503 and 500: sometimes, in minutes to hours. 429 through a reseller: no, the cap belongs to the reseller's account |
400 · Model Not Exist |
DeepSeek API 400 "Model Not Exist": deepseek-chat and deepseek-reasoner were retired | No. The ids are gone. Retrying returns the same 400 |
OpenAI API
| Status / code | Entry | Can you wait it out? |
|---|---|---|
429 · insufficient_quota |
OpenAI API 429 "You exceeded your current quota" (insufficient_quota): it is billing, not a rate limit, and what to do | No. It clears when credits are added or a spend limit is raised. OpenAI's docs: "Retrying billing, spend, or quota errors won't restore API access." |
OpenCode Go
| Status / code | Entry | Can you wait it out? |
|---|---|---|
403 · RegionError |
OpenCode Go 403 RegionError: "only available hosted in China and requires explicit opt in" You call a DeepSeek model on OpenCode Go and the workspace has not switched on "Enable models hosted in China" |
No. It is a policy block, not a rate limit. Retrying returns the same 403 |
OpenRouter
| Status / code | Entry | Can you wait it out? |
|---|---|---|
402 · Insufficient credits |
OpenRouter 402: "Insufficient credits" and "Free BYOK request cap exceeded for this month" The OpenRouter account that owns the key has no credits to charge, or the key's own spending limit is used up. With BYOK the charge is OpenRouter's 5% fee, so it happens with a fully funded upstream key |
Only for limit_source: openrouter_in_flight_budget (wait for Retry-After) or when the account is somebody else's. Your own empty balance or key limit stays at 402 until credits are added |
Gemini API
| Status / code | Entry | Can you wait it out? |
|---|---|---|
404 · NOT_FOUND |
Gemini API 404 NOT_FOUND: "models/gemini-2.0-flash is not found" (shut down June 1, 2026) | No. The model is gone. The same message is returned for typos, which is why it is easy to misread |
Claude API
| Status / code | Entry | Can you wait it out? |
|---|---|---|
404 · not_found_error |
Claude API 404 not_found_error: retired model ids (claude-3-5-sonnet, claude-3-7-sonnet, claude-sonnet-4, claude-opus-4) | No. Retired means requests fail |
Missing an error you hit? Send us the exact string and we will add an entry.
