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.
- For a custom application, select the endpoint from
supported_endpoint_types; use Chat Completions,/v1/chat/completions, when it includesopenai. - For Claude Code, follow the Claude Code guide and confirm that the model supports
anthropic. - Choose the matching endpoint before sending another request. Waiting or changing networks will not fix this mismatch.
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:- Copy the model ID exactly from the Model Marketplace.
- Confirm that the endpoint matches the model and client in the integration overview.
- Check whether the model supports the image, tool-calling, reasoning, or session-continuation parameters you are sending.
- Update the client or SDK when it is old.
- Start a new session and send a short text request.
401 Unauthorized
Typical causes are a missing, mistyped, disabled, expired API key, or an incorrectly formatted authentication header.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
/v1or the endpoint path. - The request uses a supported route, such as
/v1/chat/completions,/v1/responses,/v1/messages, or/v1/images/generations.
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 asConcurrency 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-Afterwhen 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 thenot 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.
