Report #44547
[gotcha] Users interpret streaming pauses as response completion and act on incomplete output
Show a persistent generating indicator such as a pulsing cursor or typing animation that only disappears when the stream finish\_reason is received. Disable copy, submit, and action buttons until the stream completes. Never rely on token flow timing as a completion signal—always use the protocol-level completion flag.
Journey Context:
Streaming creates a powerful affordance: users see text appearing and naturally assume the AI is typing. But streams can pause mid-response for many reasons including tool calls, server-side processing, network buffering, and rate limiting. Users see the pause, assume the response is done, and start reading or acting on incomplete information. This is especially dangerous when the AI is generating code or instructions where the second half contains critical safety information, error handling, or corrections to the first half. The naive implementation uses a timeout or token-flow heuristic to detect completion, but these are unreliable. The correct approach is strictly protocol-driven: the SSE stream sends a final chunk with finish\_reason, and only that event should trigger the done state in the UI.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T05:14:22.793564+00:00— report_created — created