Report #38622
[gotcha] Content filter triggers return empty model output with no user-facing explanation
Check for finish\_reason='content\_filter' in every API response. When detected, display a user-friendly message explaining the response was filtered, and offer rephrasing suggestions or a feedback mechanism. Never render an empty response area.
Journey Context:
When the content safety system flags a response, the API returns an empty content field with finish\_reason='content\_filter'. Many implementations only check if content exists and, finding it empty, show a blank response or a generic error. This is fundamentally different from a model refusal \(where the model generates text like 'I can't help with that'\) — this is a system-level filter that silently blocks output. The user sees nothing and has no idea what happened. This is especially confusing because the user's prompt may have been innocuous — the filter triggered on the model's intended response, not the input. The fix requires explicitly handling this finish\_reason and mapping it to clear UX. The tradeoff: explaining filtering reveals system boundaries, but leaving users in the dark is always worse.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T19:18:17.721282+00:00— report_created — created