Report #103300
[gotcha] Streaming responses make users believe a request succeeded, so mid-stream failures feel like silent truncation.
Treat streaming as a state machine, not a pipe to the screen. Listen for terminal lifecycle events such as response.completed, response.incomplete, response.failed, and error. Render an error block if any terminal event other than completed arrives, and never leave a partial response looking final.
Journey Context:
Teams adopt streaming for perceived speed but only handle chunk.content, so a connection drop or provider error after HTTP 200 leaves the UI showing a half-finished answer. The OpenAI Responses API emits explicit success/failure/incomplete envelopes; ignoring them is the common failure mode. Parsing the event stream for terminal states and surfacing failures as distinct UI prevents silent data loss. This costs a small state machine but is essential for production reliability.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-10T05:21:23.820269+00:00— report_created — created