Claude Fable 5.1 runs safety classifiers that can decline a request entirely — not answer cautiously, decline. On the API this arrives as a response with a refusal stop reason and a category. In a chat or coding tool it looks like the model saying it can't help with that.

For ordinary building this is rare. But there are specific situations that trigger false positives, and knowing them saves confusion.

The three known triggers

Compile-check phrasing. "Does this program compile without errors?" is more likely to be declined than "Are there any bugs in this program?" Ask about bugs, not about compilation.

Obscure programming languages. A lesser-known language the classifier doesn't recognise can look like something it isn't. Give the model context: what the language is, a link to its documentation, how it works. That resolves most of it.

Tools that return base64-encoded data. If you're building an agent and one of its tools puts large base64 blobs into the conversation, remove that — encoded data in context is a classifier trigger.

What's fine

Finding vulnerabilities in source code is permitted. Security review of your own project is fine. Debugging, auditing, fixing — all fine. The classifiers are aimed at specific categories of harmful capability, not at ordinary security work.

What to do when it happens

Rephrase. A refusal is a classifier decision, not a considered judgement, and a different framing of the same reasonable request usually goes through. State the context — what you're building, why — since classifiers respond to context too.

If you're on the API, don't retry the identical request in a loop. Check the stop reason, log the category, and either rephrase or fall back.

Fallbacks, if you build on the API

Anthropic provides a server-side fallback: when Fable 5.1 declines, the request can automatically route to an Opus-tier model instead. It's opt-in, via a beta header and a fallbacks parameter. If you're building a product on Fable 5.1, turn it on — a rare refusal becomes an invisible downgrade rather than a broken feature.

refusal-handling.txt
Building on the Fable 5.1 API? Add fallback handling:

- Always check stop_reason before reading content. "refusal" means the
  classifiers declined; content may be empty.
- Enable server-side fallbacks so refused requests route to Opus
  automatically. Log when it happens and the category returned.
- Never retry the identical request in a loop.
- If you handle it yourself, re-send the conversation as-is to
  claude-opus-5 — don't strip anything.

One more thing to know

Fable 5.1 requires 30-day data retention. If your organisation is set up for zero data retention, every request returns an error — check the account's retention configuration before debugging your code.

A refusal on ordinary code is nearly always phrasing. Rephrase once before assuming anything else.