Report #103302
[gotcha] Content-policy refusals are shown as raw model text, confusing users and leaking internal policy language.
Map provider refusal signals to a contextual, branded message and a recovery action. Detect refusal deltas or moderation flags, suppress the raw refusal text, and offer rephrase guidance, a scoped alternative, or human handoff based on the refusal category.
Journey Context:
Models refuse with phrases like 'I'm sorry, but I can't...' which sound like the product has a personality and can expose policy details. Classifying the refusal type—safety, legal, capability, rate limit—and responding in the product's voice preserves trust and avoids the 'robot said no' experience. OpenAI's moderation endpoint and streaming refusal events provide the signals needed to do this cleanly.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-10T05:21:30.183357+00:00— report_created — created