induwara.lk
induwara.lkDeveloper · Reference

AI API Error Code Lookup — OpenAI, Claude & Gemini

Paste any status code or error string from the OpenAI, Anthropic, or Google Gemini API and instantly see what it means, the likely cause, the fix, and whether it is safe to retry. 24 codes, sources cited, fully offline — no key, no upload.

By Induwara AshinsanaUpdated Jun 24, 2026
Look up an AI API error

Matches the HTTP status, error type/code, SDK exception name, or meaning. Leave empty to browse all 24 codes.

Try

24 matches

Retry with backoffRetry after delayDo not retry — fix request
400Anthropic (Claude)invalid_request_errorDo not retry — fix request

There was an issue with the format or content of your request.

Likely cause

  • Malformed JSON body or a missing required field (e.g. model, messages, max_tokens).
  • A parameter value out of range or of the wrong type.

Fix

Validate the request body against the Messages API schema. Check model name, required fields, and parameter types before resending.

Not auto-retryable — fix the underlying issue first.Official doc
401Anthropic (Claude)authentication_errorDo not retry — fix request

There's an issue with your API key.

Likely cause

  • Missing, revoked, or mistyped x-api-key header.
  • Using a key from the wrong organisation or workspace.

Fix

Confirm the x-api-key header carries a valid key from the Anthropic Console. Rotate the key if it may be exposed.

Not auto-retryable — fix the underlying issue first.Official doc
403Anthropic (Claude)permission_errorDo not retry — fix request

Your API key does not have permission to use the specified resource.

Likely cause

  • The key lacks access to the requested model or feature.
  • Workspace or organisation restrictions block the resource.

Fix

Use a key with access to the requested model, or request access for that model/feature in the Console.

Not auto-retryable — fix the underlying issue first.Official doc
404Anthropic (Claude)not_found_errorDo not retry — fix request

The requested resource was not found.

Likely cause

  • An unknown model id (typo or deprecated model).
  • A wrong endpoint path or a message/batch id that does not exist.

Fix

Check the model id against the current models list and confirm the endpoint URL. Deprecated models return 404 once retired.

Not auto-retryable — fix the underlying issue first.Official doc
413Anthropic (Claude)request_too_largeDo not retry — fix request

Request exceeds the maximum allowed number of bytes.

Likely cause

  • Oversized prompt, document, or image payload in a single request.

Fix

Trim or chunk the input, downscale images, or use the Files API / prompt caching to avoid resending large context each call.

Not auto-retryable — fix the underlying issue first.Official doc
429Anthropic (Claude)rate_limit_errorRetry after delay

Your account has hit a rate limit (requests or tokens per minute).

Likely cause

  • Too many requests or tokens within the window for your usage tier.
  • A burst of concurrent calls from multiple workers.

Fix

Wait for the time given in the retry-after response header, then retry. Smooth out bursts and consider a higher usage tier.

Backoff plan: 1s · 2s · 4s · 8s · 16s (or honour retry-after)Official doc
500Anthropic (Claude)api_errorRetry with backoff

An unexpected error occurred internal to Anthropic's systems.

Likely cause

  • A transient fault inside Anthropic's infrastructure.

Fix

Retry the same request with exponential backoff and jitter. If it persists, check status.anthropic.com.

Backoff plan: 1s · 2s · 4s · 8s · 16sOfficial doc
529Anthropic (Claude)overloaded_errorRetry with backoff

Anthropic's API is temporarily overloaded.

Likely cause

  • Transient server-side capacity pressure, often at peak hours.
  • Not a bug in your code or request.

Fix

Retry the same request with exponential backoff + jitter and reduce concurrency. Avoid hammering immediately — it worsens the overload.

Backoff plan: 1s · 2s · 4s · 8s · 16sOfficial doc
400OpenAIinvalid_request_errorDo not retry — fix request

The request was malformed or missing required parameters.

Likely cause

  • Missing or invalid parameters (model, messages, etc.).
  • Context length exceeded or an unsupported parameter for the chosen model.

Fix

Read the message field — it names the offending parameter. Fix it and resend. For context-length errors, shorten the prompt or raise the limit.

Not auto-retryable — fix the underlying issue first.Official doc
401OpenAIinvalid_api_keyDo not retry — fix request

Authentication failed — the API key is wrong, revoked, or absent.

Likely cause

  • Incorrect or expired API key.
  • Missing Authorization header, or not a member of the billing organisation.

Fix

Use a valid key from the OpenAI dashboard and send it as `Authorization: Bearer <key>`. Set the correct OpenAI-Organization header if you belong to several.

Not auto-retryable — fix the underlying issue first.Official doc
403OpenAIunsupported_country_region_territoryDo not retry — fix request

You are accessing the API from an unsupported country, region, or territory.

Likely cause

  • The request originates from a region OpenAI does not serve.
  • A VPN or proxy egress in an unsupported location.

Fix

Access the API from a supported region. Check OpenAI's supported-countries list; disable any VPN that routes through an unsupported location.

Not auto-retryable — fix the underlying issue first.Official doc
404OpenAImodel_not_foundDo not retry — fix request

The requested model does not exist or you cannot access it.

Likely cause

  • A typo or deprecated model name.
  • Your account/tier has no access to that model yet.

Fix

Call the /v1/models endpoint to list models you can use, then correct the model id. Some models require tier or access approval.

Not auto-retryable — fix the underlying issue first.Official doc
429OpenAIrate_limit_exceededRetry with backoff

You are sending requests (or tokens) too quickly for your tier.

Likely cause

  • Requests-per-minute or tokens-per-minute limit exceeded.
  • Spiky concurrency without client-side throttling.

Fix

Back off and retry with exponential backoff + jitter. Throttle client-side, batch where possible, and request a higher rate limit if you consistently hit it.

Backoff plan: 1s · 2s · 4s · 8s · 16sOfficial doc
429OpenAIinsufficient_quotaDo not retry — fix request

You have run out of credits or hit your hard billing limit — also returned as 429.

Likely cause

  • No remaining prepaid credits, or the monthly hard limit was reached.
  • An expired free trial.

Fix

Do not retry — it will keep failing. Add a payment method or credits in Billing and check your usage limits. This is a billing issue, not a rate issue.

Not auto-retryable — fix the underlying issue first.Official doc
500OpenAIserver_errorRetry with backoff

OpenAI had an error while processing your request.

Likely cause

  • A transient fault on OpenAI's side.

Fix

Retry after a brief wait with exponential backoff. If it persists, check status.openai.com and contact support with the request id.

Backoff plan: 1s · 2s · 4s · 8s · 16sOfficial doc
503OpenAIengine_overloadedRetry with backoff

The engine is currently overloaded — the service is temporarily unavailable.

Likely cause

  • High traffic / temporary capacity pressure on OpenAI's servers.

Fix

Retry with exponential backoff + jitter and lower your concurrency. Avoid immediate tight-loop retries.

Backoff plan: 1s · 2s · 4s · 8s · 16sOfficial doc
400Google GeminiINVALID_ARGUMENTDo not retry — fix request

The request body is malformed.

Likely cause

  • A typo or missing required field in the request body.
  • An unsupported parameter or value for the chosen model.

Fix

Check the API reference for the correct request format and confirm the model supports the parameters you sent.

Not auto-retryable — fix the underlying issue first.Official doc
400Google GeminiFAILED_PRECONDITIONDo not retry — fix request

The free tier is not available in your country, or billing is not enabled.

Likely cause

  • Gemini API free tier not offered in your region.
  • Billing not enabled on the Google Cloud project.

Fix

Enable billing on your Google Cloud project (a paid tier works in supported regions). Do not retry until billing/region is sorted.

Not auto-retryable — fix the underlying issue first.Official doc
403Google GeminiPERMISSION_DENIEDDo not retry — fix request

Your API key doesn't have the required permissions.

Likely cause

  • Wrong API key, or the key lacks access to the requested resource.
  • A tuned model accessed without correct authentication.

Fix

Confirm the API key is correct and its access is set up. Check that any tuned model belongs to the authenticated project.

Not auto-retryable — fix the underlying issue first.Official doc
404Google GeminiNOT_FOUNDDo not retry — fix request

A requested resource wasn't found.

Likely cause

  • An unknown model id or a file/resource that doesn't exist.
  • Referencing an uploaded file that has expired.

Fix

Verify the model id and that any referenced files still exist (uploads expire). Re-upload files if needed.

Not auto-retryable — fix the underlying issue first.Official doc
429Google GeminiRESOURCE_EXHAUSTEDRetry with backoff

You've exceeded the rate limit (requests or tokens per minute/day).

Likely cause

  • Sending requests faster than your quota allows.
  • Free-tier quota limits reached.

Fix

Retry with exponential backoff and lower your request rate. Review your quotas and request an increase if you need more throughput.

Backoff plan: 1s · 2s · 4s · 8s · 16sOfficial doc
500Google GeminiINTERNALRetry with backoff

An unexpected error occurred on Google's side.

Likely cause

  • A transient fault in Gemini's infrastructure.
  • Input context too long for the model to process.

Fix

Retry with exponential backoff. If it persists, reduce your input context or prompt size, or switch to a model with a larger context window.

Backoff plan: 1s · 2s · 4s · 8s · 16sOfficial doc
503Google GeminiUNAVAILABLERetry with backoff

The service is temporarily overloaded or down.

Likely cause

  • Temporary capacity pressure or maintenance on Google's side.

Fix

Retry with exponential backoff + jitter. If you need lower latency under load, consider switching to a less busy model temporarily.

Backoff plan: 1s · 2s · 4s · 8s · 16sOfficial doc
504Google GeminiDEADLINE_EXCEEDEDRetry with backoff

The request could not finish within the deadline.

Likely cause

  • The prompt or context is too large to process in the allotted time.
  • A client-side timeout that is set too low.

Fix

Increase your client timeout, or reduce the prompt size. Retry with exponential backoff once the request is smaller.

Backoff plan: 1s · 2s · 4s · 8s · 16sOfficial doc

Heads up: a 429 is not one thing. OpenAI splits it into rate_limit_exceeded (retryable) and insufficient_quota (a billing problem — retrying never helps). Anthropic returns rate_limit_error with a retry-after header; Gemini uses RESOURCE_EXHAUSTED.

How it works

When a call to an LLM API fails, the SDK usually surfaces a bare HTTP status code and a short type or codestring with little context. This tool maps each of those signals back to a plain-English meaning and a concrete action, using a curated table transcribed directly from the three providers' official error documentation.

The data is a fixed array of 24 records — one per (provider, HTTP status, error type) triple. Each row carries the meaning, the likely causes, a recommended fix, a list of aliases (the SDK exception names you might paste, like RateLimitError), and a link to the source doc. Matching is a case-insensitive substring search across the status, error type, aliases, and meaning, so a numeric query like 429 matches on status while a word query like overloaded matches the type and alias. Selecting a provider scopes the rows; the retryable toggle hides anything you must fix rather than retry.

The retry verdict for every row is taken verbatim from the provider's own guidance, then grouped into three categories:

  • Retry with backoff— transient server faults: HTTP 500, 503, Anthropic's 529 overloaded_error, Gemini's 504 DEADLINE_EXCEEDED, and the 429 rate limits. Retry the same request with exponentially growing delays (about 1s, 2s, 4s, 8s, 16s) plus random jitter, capped at a sane maximum.
  • Retry after delay— Anthropic's 429 rate_limit_error returns a retry-after header; honour that exact value instead of guessing.
  • Do not retry— client-side errors (400/401/403/404) and OpenAI's insufficient_quota (a billing problem). Retrying these fails identically; fix the request, key, or billing first.

As a correctness check, a second function independently re-derives each row's verdict from the documented status/type rules and compares it to the stored value — the badge in the tool header confirms all 24 rows agree. No live network calls are ever made, so the lookup is deterministic and works offline.

Worked examples

Anthropic 529 at peak hours

Provider = Claude · query "529"

  1. Matches exactly one row: HTTP 529, type overloaded_error.
  2. Meaning: Anthropic's API is temporarily overloaded.
  3. Cause: transient server-side capacity pressure — not your bug.
  4. Verdict: Retry with backoff (1s, 2s, 4s, 8s, 16s + jitter).
  5. Action: retry the same request, lower concurrency — no code change.

A 429 across all providers

Provider = All · query "429"

  1. Matches four rows — 429 is not one thing.
  2. OpenAI rate_limit_exceeded → Retry with backoff.
  3. OpenAI insufficient_quota → Do not retry — add billing/credits.
  4. Anthropic rate_limit_error → Retry after the retry-after header.
  5. Gemini RESOURCE_EXHAUSTED → Retry with backoff / lower request rate.

Pasting an SDK exception name

Provider = All · query "RateLimitError"

  1. RateLimitError is an alias on both the OpenAI and Anthropic 429 rows.
  2. Matches OpenAI rate_limit_exceeded and Anthropic rate_limit_error.
  3. Both are retryable; Anthropic adds a retry-after header to honour.
  4. Shows you the alias resolves even when you don't know the raw type.

Frequently asked questions

Sources & references

The 24-row table was last cross-checked against these official docs on 2026-06-24. Providers occasionally rename error types — if a live doc disagrees with a row here, trust the doc and email me so I can update it.

Related tools

Rate this tool
Be the first to rate

Comments & feedback

Spotted a bug or want an improvement? Tell us — our team reviews every comment, and good ideas get built. Comments are public and anonymous.

Spotted an error type we're missing, or a verdict that drifted from the docs?

Email me at [email protected] — most fixes ship within 24 hours.