Start with the symptom you can observe. This page routes you to an existing check; it does not decide which response is correct.
If your capture begins with HTTP/, classify the status under RFC 9110 first; see the HTTP status guide. Then, when the body parses as a Chat Completions response, inspect choices[0].message.content (text, an empty string or null), choices[0].message.refusal, choices[0].message.tool_calls and choices[0].finish_reason, in that order. A JSON body does not contain the HTTP status; inspect these choice fields only after the outer JSON parses.
Read the response in this order
HTTP/ capture → status class (RFC 9110) → content → refusal → tool_calls → finish_reason
The status and response-field explanations are linked below. Do not infer one layer from another.
No text came back
- What you see
- The assistant text is
nullor an empty string. - Check first
- Read
contentas text, empty or null; thenrefusal,tool_callsandfinish_reason, in that order.
Only part came back
- What you see
- The response ends before the expected value, or a required field is missing.
- Check first
- Read
content,refusal,tool_callsandfinish_reason, in order; then compare the finish reason with the captured body.
An API error appeared
- What you see
- The captured status is an error class, or the body contains an error envelope.
- Check first
- Read the HTTP status class first. If the parsed body is a Chat Completions response, read
content,refusal,tool_callsandfinish_reasonin order; otherwise inspect its error body.
The stream stopped
- What you see
- An SSE stream went quiet, closed, or ended without its terminal markers.
- Check first
- Read
content,refusal,tool_callsandfinish_reason, in order; then check[DONE]and the terminal or error frame.
A parser rejected the JSON
- What you see
- The copied response looks complete, but a JSON parser rejects it.
- Check first
- If the outer JSON parses, read
content,refusal,tool_callsandfinish_reason, in order; then inspect code points in text content.
This route map uses the existing HTTP status and header guide, API error guide and Chat Completions field reference. The field reference links the official OpenAI documentation. No new response fields or provider-specific codes are introduced here.