Skip to main content
This page applies to Claude Code, Codex CLI, Cursor, VS Code extensions, and custom applications. Before retrying, save the original error, Request ID, time, model, and request endpoint. Never send a full API key.
Diagnose before retryingParameter, endpoint, and session-compatibility issues do not resolve through repeated requests. Retry a known transient failure only once and at a low frequency; this avoids duplicate work and additional charges.

status_code=500, not implemented

If the error includes both status_code=500 and not implemented, first check whether the selected model supports the protocol used by the current endpoint. For example, /v1/responses requires openai-response in supported_endpoint_types. If that type is absent, it is a protocol incompatibility, not an upstream failure that will recover by waiting.
  1. For a custom application, select the endpoint from supported_endpoint_types; use Chat Completions, /v1/chat/completions, when it includes openai.
  2. For Claude Code, follow the Claude Code guide and confirm that the model supports anthropic.
  3. Choose the matching endpoint before sending another request. Waiting or changing networks will not fix this mismatch.
When asking for help, provide a redacted request example, model name, and Request ID—never the API key.

400 Bad Request / incompatible parameters

A 400 usually means that the request shape, a parameter, or session state is not valid for the current endpoint. Check in this order:
  1. Copy the model ID exactly from the Model Marketplace.
  2. Confirm that the endpoint matches the model and client in the integration overview.
  3. Check whether the model supports the image, tool-calling, reasoning, or session-continuation parameters you are sending.
  4. Update the client or SDK when it is old.
  5. Start a new session and send a short text request.
After correcting the likely cause, send one minimal request to verify it.

401 Unauthorized

Typical causes are a missing, mistyped, disabled, expired API key, or an incorrectly formatted authentication header.
Copy the key again from the console and confirm the request URL. Do not send the complete key to support. If it may have been exposed, disable it first, create a replacement, and update the affected application.

403 Forbidden

A 403 means that this request was denied. Common platform-side reasons include a key without access to the selected group, a model restriction, an IP allowlist mismatch, or an unavailable account state; an upstream model service can also refuse a request. Check the key’s group, model restriction, and IP allowlist, then test with one short text request. If it continues, provide the Request ID, model, time, and original error. Repeated high-frequency retries or creating new keys will not resolve an access restriction.

404 Not Found / wrong request address

Check these points first:
  • The Base URL was not assembled as /v1/v1/....
  • The client does not already add /v1 or the endpoint path.
  • The request uses a supported route, such as /v1/chat/completions, /v1/responses, /v1/messages, or /v1/images/generations.
URL rules differ by tool; use the relevant tool guide. An unavailable model is not normally a 404. A model outside the key’s group, a currently unavailable model, or no available service is more often reported as 503 / no available channel.

429 Too Many Requests

429 can come from a platform model-rate limit or a temporary limit in the model service. An error such as Concurrency limit exceeded for user is usually an upstream or client-side concurrency limit; do not treat the status code alone as proof that the API key is broken.
  • Reduce concurrency. Follow Retry-After when it exists; otherwise use exponential backoff with random jitter.
  • Do not let several programs retry rapidly with the same key.
  • If it continues even at a low rate, provide the Request ID so service availability can be checked.

500, 502, 503, 504, or 524

Except for the not implemented protocol error above, these statuses usually mean processing failed, a connection broke, a service is busy, or a wait timed out. They do not necessarily mean that the key or prompt is wrong. When the same model fails repeatedly, pause additional long tasks, preserve the evidence, and contact support.

no available channel / no current service for this model

This means that the current key’s group temporarily has no available service for that model. A mistyped model ID, a model not offered in the group, temporary model unavailability, or service maintenance can all cause it. Try later or choose another model currently visible for the group in the Model Marketplace. If it persists, submit the model name, Request ID, and time. This message is unrelated to adding credit or creating a new key.

Concurrency limit exceeded for user

The account already has the maximum number of active requests. Wait for existing requests to finish, then reduce concurrency. The API key does not need to be disabled or recreated for this error alone.

Long conversations or tool-call failures

Invalid signature in thinking block

Saved reasoning content in the current session can no longer be verified. This often occurs when a long session is resumed, the client state changes, or compatibility changes. Start a new session, update the client, and avoid continuing the same session across multiple devices. Repeating the original session usually does not recover it.

previous_response_id is only supported on Responses WebSocket v2

The client is continuing a prior response over an unsupported connection method. Start a new session, turn off experimental session continuation or response reuse, or update the client.

Content block not found

The client did not receive an expected complete content fragment, often during a long conversation, tool call, or interrupted stream. Start a new session, shorten the input, and send a simple test first. If it persists, temporarily disable nonessential tool calls and send support the Request ID, time, model, and original error. We will use those details to check service status.

Image-generation timeout or unsupported capability

Image models must use the image endpoint; text models cannot use an image-generation endpoint. Image generation is currently synchronous and can take longer than a text request. Before submitting the same job again, first confirm the result of the initial request.
  • Image generation is not enabled / model not supported: verify that the model, endpoint, and parameters match.
  • 504 / 524 / client timeout: retain the Request ID and time before deciding whether to regenerate.
See image model usage.

Credit is available but the key reports an insufficient limit

Check the account credit, API-key limit, expiry, and token group. A single message can also be caused by a key-level limit, an expired key, or a group rule, so confirm those details before topping up. For a persistent issue, provide the Request ID for review.

Will an error complete automatically later?

An error does not necessarily mean that the platform will later complete the request. Ordinary calls do not have a platform-level automatic retry guarantee. If a client or application sends another request, it normally creates a new Request ID. Use the final log for the matching Request ID and whether the client received complete content to determine the result. If you suspect a duplicate charge, provide the relevant Request IDs and times.

What to send to support

Do not submit a full API key, password, private data, or complete business content. If key identification is needed, provide at most its last six characters.