Report #104106
[gotcha] Refusals can begin after content has already streamed, producing a confusing partial answer
Listen for refusal-specific stream events such as ResponseRefusalDelta and ResponseRefusalDone. When a refusal starts, replace or roll back any partial output and show a single, plain-language explanation with a constructive next step instead of appending the refusal text to an in-progress answer.
Journey Context:
OpenAI's streaming responses guide defines ResponseRefusalDelta and ResponseRefusalDone as first-class events. Many integrations treat every delta as text, so a refusal that fires mid-stream results in a half-answer followed abruptly by policy language. Refusal is a distinct completion state and should be handled as a clean replacement, not as appended content.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-13T05:14:55.128540+00:00— report_created — created