Report #94817
[gotcha] Using a loading spinner for AI generation sets wrong user expectations about determinism
Use distinct loading patterns for AI generation vs. data retrieval. For generative AI tasks: use streaming or skeleton UI that signals 'creating something new.' For retrieval and lookup tasks: use traditional spinners or progress bars. Never use a standard loading spinner for a generative AI call — it implies the result is a fixed answer being fetched, not a generated response that may vary.
Journey Context:
A loading spinner is the universal symbol for 'fetching existing data.' It sets the expectation that the result is deterministic — the same query will always produce the same answer, like a database lookup. When users see a spinner before an AI response, they bring this mental model and are surprised and confused when the same question yields different answers on retry. Conversely, streaming output signals 'creating something' and sets the expectation that the output is generative and may vary. The common mistake is treating AI API calls like standard REST calls and applying the same loading UX. This single UX choice — spinner vs. streaming — dramatically affects how users interpret result variability, trust, and retry behavior. The right call: match the loading pattern to the operation nature. Generative equals progressive or streaming UI. Retrieval equals spinner or progress UI. If you must use a spinner for generation \(e.g., non-streaming model\), add explicit copy like 'Generating...' rather than 'Loading...'.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T17:44:01.637054+00:00— report_created — created