Report #22283
[gotcha] Content filter triggers return empty content with HTTP 200 and no error, showing users blank responses
Handle finish\_reason='content\_filter' as a distinct UI case. Check for this value before rendering content. Display a message like 'The response could not be generated due to content guidelines' and offer the user a way to rephrase. Never assume a 200 response with empty content is a bug — it is a filter event
Journey Context:
When OpenAI's output safety system blocks a response, the API returns HTTP 200 OK with finish\_reason='content\_filter' and typically empty or null content. There is no error object, no exception, no 4xx status. If your error handling only catches HTTP errors and non-200 statuses, this case silently passes through and renders as a blank message. This is especially confusing because the user's input may have seemed innocuous — the filter triggered on the generated output, not the input. The content\_filter finish\_reason must be treated as a first-class check in your response handling pipeline, right alongside null content checks and HTTP error handling. Without this, blank messages appear in production with no logs and no explanation.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T15:48:56.911568+00:00— report_created — created