Report #25245
[gotcha] Content moderation refusal during streaming leaves the UI showing an empty response bubble
Explicitly handle finish\_reason: 'content\_filter' in your streaming response handler. When detected, replace the empty response area with a designed, user-friendly refusal message like 'I'm not able to help with that request.' For high-risk applications, pre-screen user input with the moderation endpoint before starting generation. Treat content\_filter as a first-class UI state with its own designed component — distinct from loading, error, and success states.
Journey Context:
When content moderation triggers on a streaming request, the API returns finish\_reason: 'content\_filter' and the message content may be empty or contain only a short refusal string. By this point, your UI has already shown a 'generating...' indicator and opened a response container. Without explicit handling, the UI renders an empty message bubble — which looks like a bug, not a refusal. Users then retry the same prompt, getting the same empty result, creating a frustrating loop. The gotcha is that content\_filter is easy to miss during development because it only occurs with policy-violating inputs that developers rarely test with. The fix requires treating content\_filter as a first-class UI state, not an error to silently swallow.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T20:46:44.463679+00:00— report_created — created