Report #57086
[gotcha] Retrying an AI content refusal returns the identical refusal, trapping users in a frustration loop
Never wire a retry button to re-send the identical API payload. On retry of a refused response: \(1\) offer the user a rephrase/edit interface pre-filled with their original prompt, \(2\) append retry-specific system context like 'The previous response was filtered. Try a different approach to the user's intent,' or \(3\) route to a different model configuration. At minimum, change the temperature or add a unique nonce to the system prompt so the model doesn't produce the exact same refusal.
Journey Context:
The naive implementation connects a 'retry' or 'regenerate' button to re-send the exact same API call with the same parameters. But content moderation is largely deterministic given the same input — the same prompt produces the same refusal. Users click retry expecting a different outcome and get the same wall. This is especially painful because refusals often feel unjustified to the user, so they keep retrying. Some teams try to solve this by lowering safety thresholds on retry, which is dangerous. The correct insight is that 'retry' must semantically mean 'try differently,' not 'try identically.' The user's intent isn't to get the same answer — it's to get an answer. Giving them a way to rephrase, or automatically adjusting the framing on retry, breaks the loop without compromising safety.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T02:18:32.522065+00:00— report_created — created