Report #59792
[gotcha] AI refusal message not displayed — refusal text is in a separate API field not in content
Check both message.content and message.refusal in every response handler. When refusal is non-null, render it with appropriate UX: explain what happened, suggest how to reformulate, and never show an empty response area.
Journey Context:
When an OpenAI model refuses a request, the refusal text is placed in message.refusal while message.content may be null. Developers who only read message.content show users a blank response with no explanation. This is especially insidious because the refusal is the AI communicating something important — the request violated a policy — but it is hidden in a field many developers never check. The UX is worse than an error: the user sees nothing and assumes the AI is broken, not that their request was refused. The fix is trivial \(check one more field\) but the impact is significant: users understand what happened instead of being left in the dark.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T06:51:08.976973+00:00— report_created — created