Find the setting to check next.
Read the HTTP status together with the error message. Change one setting at a time so you can see which change fixes the request.
On this page
Start with the request details
- Confirm the destination host is codex.aicpr.icu and that the URL has /v1 only once.
- Check the endpoint against the model’s supported API. Chat Completions uses messages; Responses uses input.
- Confirm that your application reads PRISMROUTE_API_KEY in its actual runtime. A variable set in another terminal or only during a frontend build may not reach your server process.
- Copy the exact model ID from the catalog and check the API key’s group and restrictions.
Match the HTTP status
| Status | What to check |
|---|---|
| 400 / 422 | Inspect the named parameter, request JSON and model-specific capability. Start with the minimal text example before adding options. |
| 401 | Check that the key is valid and sent as Authorization: Bearer … . Remove spaces, quote characters or the wrong provider’s key. |
| 403 | Read the error message; check key permissions, account restrictions and access to the requested model. |
| 404 | Check the final endpoint and exact model ID. A missing endpoint and an unavailable model can require different fixes. |
| 429 | Check the returned limit message, request frequency, key limits and account status. Follow Retry-After if supplied; do not retry in a tight loop. |
| 5xx | Keep the request ID and time. The service or upstream may have failed. Check the request record before retrying an operation. |
Handle timeouts deliberately
A client timeout does not prove the server stopped processing the request. Inspect the console request record when available. If you retry, use a bounded policy with backoff, and avoid resubmitting an uncertain operation repeatedly.
If the same request works in a terminal but not your application, compare its base URL, environment, proxy settings and SDK version. Keep API calls on your server instead of exposing a private key in browser code.
Check the stream format
For Chat Completions, text generally arrives in choices[].delta.content. Responses uses typed events such as response.output_text.delta. Empty text or metadata-only events are not automatically failures.
If output appears only at the end, inspect buffering in your application or any reverse proxy you control. A request that fails before response headers is different from a stream that stops after partial output. Record which case you see.
Share enough context for support
Send the request time with timezone, endpoint path, model ID, HTTP status, request ID if provided, SDK or client version, and a redacted error message. Do not include the API key, password or private prompt content.
Contact: 321921230@qq.com