Report #47527
[gotcha] AI refusal with simple retry button creates infinite refusal loop
On refusal, never show a bare 'try again' button. Instead: surface the general category of the refusal, suggest concrete rephrasing strategies, and ideally offer a one-click 'rephrase' action that reformulates the user's intent within policy bounds. Track refusal count and escalate to alternative help after 2 refusals.
Journey Context:
The naive implementation shows the model's refusal text plus a 'regenerate' button. But the model's refusal is written for safety, not UX — it is vague \('I cannot help with that'\) and does not tell the user what to change. The user rephrases slightly, hits the same guardrail, and loops. Each loop increases frustration and makes the product feel broken rather than safe. The counter-intuitive insight: a good refusal UX actually helps the user succeed at their legitimate intent while still enforcing policy, rather than just blocking them. Most refusals are edge cases where the user's intent is benign but their phrasing tripped a classifier — guiding them to rephrase is more valuable than blocking silently.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T10:15:40.669509+00:00— report_created — created