Report #52932
[gotcha] AI refusal messages appear as normal chat responses, making users think the app is broken rather than understanding their query was refused
Detect refusals programmatically — check the refusal field in API response objects, or pattern-match common refusal phrases in the output. Render refusals with distinct UI treatment: a different visual style \(e.g., a bordered info card instead of a chat bubble\), a clear explanation of why the query was refused, and suggested alternative actions the user can take. Never render a refusal as a plain chat message.
Journey Context:
When an AI refuses a request, the refusal text \('I cannot help with that' or 'I am not able to assist with...'\) streams out as regular content. The UI renders it as a normal chat response. Users see a short, unhelpful response and think the AI is broken, lazy, or buggy — they do not understand it is a deliberate refusal based on safety policies. This is especially bad when the refusal seems arbitrary to the user \(they do not understand what policy was triggered\). The result: users retry the same query, get the same refusal, and spiral into frustration, often concluding the product does not work. The fix is twofold: first, detect refusals at the application layer rather than treating them as regular content. OpenAI's chat completion API includes a refusal field in the response object specifically for this purpose. Second, render refusals with distinct UX that explains what happened and offers alternatives. This transforms a confusing failure into a comprehensible boundary. Without distinct refusal UX, every refusal looks like a bug report, not a feature.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T19:20:32.557353+00:00— report_created — created