Report #84596
[gotcha] Raw LLM safety refusals break product UX with preachy, unhelpful error messages
Intercept LLM refusal signals \(e.g., stop reason, specific refusal tokens, or a classifier on the output\) in the backend/middleware and replace them with a concise, product-native UI state that suggests an alternative action the user can take.
Journey Context:
LLMs are trained to refuse unsafe prompts with long, preachy apologies \('I am an AI, I cannot do X'\). In a consumer product, this feels jarring and breaks immersion. Worse, the refusal often doesn't explain what the user should do. By intercepting the refusal at the API layer, you can map the failure to a standard UX error state \(e.g., a toast or inline message like 'This topic is out of scope, but I can help with Y'\) rather than rendering the raw LLM text.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T00:35:04.878647+00:00— report_created — created