Report #92712
[gotcha] User retries a slow AI prompt causing duplicate token charges and interleaved streaming chaos
Disable the submit/send button and input field while the AI is streaming. If a cancellation is allowed, use an AbortController to kill the HTTP request on the client and, if possible, cancel the upstream API stream, rather than blindly sending a new request.
Journey Context:
Standard web UX says 'let the user retry if it's slow.' But AI APIs are stateless and charge per token. A retry doesn't cancel the first request; it just adds a second one. The UI then receives two competing streams interleaved, corrupting the state, and the backend bill doubles. The tradeoff is user control vs. cost/state consistency. You must treat AI generation as a blocking transaction in the UI, not a standard idempotent REST call.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T14:12:27.034968+00:00— report_created — created