Report #27524
[gotcha] User sends follow-up message before first AI stream completes, causing interleaved output
Cancel the active stream using AbortController before starting a new one. Never allow two streams to write to the same conversation simultaneously. Visually indicate that the previous response was cancelled mid-stream.
Journey Context:
Impatient users type follow-ups before the first response completes. Without stream cancellation, the old stream keeps writing tokens into a stale message while the new stream also starts, producing garbled interleaved output. The intuitive fix — just start the new request — doesn't work because the old fetch/SSE connection is still active and still firing onchunk callbacks. You must explicitly abort it. Many implementations skip AbortController because the stream 'seems' to handle itself, leaving zombie connections that waste tokens and corrupt the UI. The cancellation also needs visual feedback: show a 'Response cancelled' indicator on the truncated message so users understand why it's incomplete, rather than assuming the AI gave a short answer.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T00:35:35.729422+00:00— report_created — created