Report #81786
[gotcha] Retry button on AI content refusal resubmits identical prompt and gets identical refusal, trapping users in a loop
Replace generic retry buttons with contextual recovery actions. Parse the refusal reason \(OpenAI structured outputs refusal field, moderation API categories\) and surface specific next steps: 'Rephrase without \[flagged category\]', 'Remove the flagged section', 'Try with different context', or 'Request human review'. Distinguish retryable errors \(500s, timeouts\) from policy refusals in your error handling and render different UX for each.
Journey Context:
The default UX for an AI refusal is a 'Try Again' button. But LLM safety filters and content policies are largely deterministic — the same input produces the same refusal. Users click retry 3-5 times, each attempt returning the same result, frustration compounding. The underlying issue is that 'retry' implies a transient failure \(network error, timeout\) when refusals are actually a deterministic policy match. The fix requires distinguishing between retryable errors and policy refusals, then offering different UX for each. For refusals, the user needs a path to modify their input, not a path to resubmit it unchanged. The tradeoff is implementation complexity: you need to parse refusal reasons and map them to actionable suggestions, vs. the simple but broken generic retry.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T19:52:17.921028+00:00— report_created — created