Use this after you have captured a complete response, checked its status and body, and still have a reproducible issue for the provider. This page organizes evidence; it does not decide which side is at fault.
Copy a plain-text report
Fill the fields from the same failed attempt. Use the exact requested model text without renaming it. If the provider reports a different model, put that value in the actual-result description too.
Provider:
Endpoint path and method:
Client or SDK and version:
Request mode: streaming / non-streaming
Requested model label (exact text from my request):
What I did to reproduce it:
What I expected:
What actually happened:
Time of occurrence (UTC, ISO 8601):
HTTP status (or no HTTP response):
Provider request ID (exact value, or "not returned"):
Relevant response headers (names and values; secrets removed):
[content-type, retry-after, relevant rate-limit headers, request ID]
Redacted response body excerpt:
[preserve the error code/type/message and response shape; replace private values]If you have the complete HTTP response, prepare a draft report locally. It masks selected header names and key-like values; review the entire report, including prompts and personal details, before sending it.
Why these details help
| Include | Why it helps |
|---|---|
| Steps, endpoint path, client/version and request mode | They give support a concise way to reproduce the same route and tell a client integration issue from a provider response. |
| What you expected and what happened | The contrast identifies the exact behavior to investigate instead of asking support to infer the problem from a large trace. |
| HTTP status, relevant response headers and a redacted body excerpt | Status and headers describe the transport result and available retry or request metadata; the body preserves the provider’s error shape and code. |
| Timestamp with UTC timezone | A timezone-qualified time helps correlate your report with the provider’s records without guessing your local offset. |
| Request or completion ID, if returned | A provider ID can identify one request. Its name and location are provider-specific; write “not returned” when no documented ID was supplied. See the response header reference before copying it. |
| Exact requested model label | The original string distinguishes the route you requested from any model name reported after routing or fallback. |
Redact without losing the useful shape
Keep only the smallest excerpt that shows the failure. Preserve field names and error codes; replace private values with stable labels such as [redacted: prompt].
| Remove or mask | Why | Keep for matching |
|---|---|---|
The entire API key and Authorization value | A key is a credential. Its prefix, suffix and bearer value can expose part of that credential. | Keep the key’s dashboard label or provider-issued key ID in your private notes. A local SHA-256 fingerprint can distinguish your own keys; it is not a provider request ID and may not match provider logs. Share a non-secret key ID or fingerprint only if the official private support form asks for it. |
| Cookies, session tokens, signed URL values and secret custom headers | These values can grant access or reveal a live session. | Keep the header names, endpoint path and non-secret response headers such as content-type, retry-after, relevant x-ratelimit-* fields and the provider request ID. |
| Private prompts, customer text, names, email addresses and other personal data | Support usually needs the failure context, not unrelated private content. | Replace each value with a consistent placeholder and retain the surrounding JSON/SSE structure, error code, error type and useful message. |
| Organization or project identifiers in a public post | They can identify an account or workspace beyond what a public reader needs. | Keep them privately. Include a provider-issued identifier only in the official private ticket when it is relevant or requested. |
Do not send the original unredacted capture to a public forum. OpenAI describes API keys as secrets and asks support requests to exclude personal or sensitive data. Keep a local key label or fingerprint for your own matching; use the request ID and UTC timestamp as the primary trace details when available.
Check these three cases before opening a ticket
If JSON syntax fails, inspect the pasted text for invisible or look-alike code points before calling the issue a provider defect. A scanner match is a location to check, not proof that the character caused the failure.
- The request itself is rejected for a fix you control. If the response points to a malformed field, wrong endpoint, invalid credential or missing permission, correct that cause first. See the API error response guide.
- The account shows an exhausted credit, quota or limit. Check the provider’s usage and limit details before retrying. A known account limit is not evidence of a service defect; see the API error response guide for the status/body distinction.
- Your own client stopped or lost part of the response. Re-capture the full status, headers and body, then inspect stream endings and incomplete JSON. Start with capturing the complete response and checking incomplete JSON.
If those checks do not explain a repeatable failure, submit the redacted report through the provider’s official support route. Do not promise yourself a response time; the provider controls its queue.
Official support and debugging references
OpenAI: contact support and prepare an API support request
OpenAI API: request IDs and request debugging
OpenAI API: rate limits and response headers
OpenRouter: official support and ticket page
OpenRouter: API errors, request IDs and debugging
OpenRouter: credits, rate limits and Retry-After
Sources checked 20 October 2026. Support routes and request metadata differ by provider. This page sends no request and does not promise provider response times.
Free API access and limits
Check the site free API access and limits before trying to obtain a site key. Read the current status and request limits before using a site key. It is not a source of official provider keys.
ChinaGenAI is not affiliated with the providers named here. This release contains setup guidance and explicitly labeled fictional examples, not claimed live model benchmarks.