Report #101806
[gotcha] Model refusals rendered as normal answers confuse users and break trust
Detect the structured refusal signal \(e.g. message.refusal or refusal content parts\) and render a consistent, branded refusal state instead of dumping the model's refusal text into the chat stream. Log refusals separately for auditing.
Journey Context:
When a model declines a request, it may return either a top-level refusal field or a refusal content part. If the UI treats that like ordinary assistant content, users see inconsistent walls of text, may think the app is broken, and cannot distinguish policy blocks from technical errors. The API explicitly separates refusal from content so products can present a calm, predictable 'I can't help with that' experience and route policy events to moderators.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-07T05:28:43.254541+00:00— report_created — created