π¨ Fable 5 completely unusable: 400 error on every request when advisorModel is set to Sonnet
Summary
Fable 5 is completely broken out of the box. Switching to claude-fable-5 via /model immediately causes a 400 on every single request. The error is not triggered by calling the advisor β it fires the moment any prompt is sent, because the tool schema itself (sent in every API request) is rejected.
Users who set "advisorModel": "sonnet" (explicitly or as a common recommendation in docs/guides) are fully blocked from using Fable 5 with zero indication of why.
---
Error
API Error: 400 tools.10.model: 'claude-sonnet-4-6' cannot be used as an advisor
when the request model is 'claude-fable-5'.
---
Root Cause
The advisor tool definition is included in every API request with a hardcoded model field (e.g. "model": "claude-sonnet-4-6"). When the main request model is claude-fable-5, the API rejects the entire request β not the tool call, but the request itself.
This means:
- The error happens before any response
- Denying the
advisortool viapermissions.denydoes not fix it (tool def still sent) - There is no in-app error message explaining what's wrong or how to fix it
---
Steps to Reproduce
- Add to
~/.claude/settings.json:
{
"advisorModel": "sonnet"
}
- Run
/modelβ select Fable 5 - Type any prompt and submit
Result: API Error: 400 tools.10.model: 'claude-sonnet-4-6' cannot be used as an advisor when the request model is 'claude-fable-5'.
---
Impact
| Scenario | Result |
|---|---|
| /model β Fable 5, advisorModel: "sonnet" | π₯ Every request fails |
| /model β Fable 5, advisorModel: "fable" | β
Works |
| /model β Sonnet 4.6, advisorModel: "sonnet" | β
Works |
| No advisorModel set, /model β Fable 5 | β Untested β may also fail |
Anyone who followed setup guides or has advisorModel: "sonnet" in their config cannot use Fable 5 at all without manual intervention.
---
Expected Behavior
Claude Code should auto-match advisorModel to the active session model when no explicit override is given β or at minimum, validate at model-switch time and warn the user, instead of silently failing on every request.
---
Workaround
Manually edit ~/.claude/settings.json:
{
"advisorModel": "fable"
}
β οΈ This breaks the advisor when switching back to Sonnet. There is currently no way to make both work simultaneously without manually toggling the setting each time.
---
Environment
- Platform: macOS 25.5.0 (Darwin)
- Claude Code CLI (latest)
- Main model:
claude-fable-5 - Advisor model:
claude-sonnet-4-6(via alias"sonnet")