Advisor (Fable 5) returns "unavailable" whenever the transcript contains any prior tool call — one Bash(ls) suffices; Opus advisor immune
Summary
The server-side advisor tool with advisorModel: "fable" (claude-fable-5) returns advisor_tool_result_error with error_code: "unavailable" whenever the session transcript contains at least one prior tool call — any tool, e.g. a single Bash(ls) or one Read. With zero prior tool calls the identical configuration succeeds. Switching only advisorModel to opus makes the same tool-call-then-advisor sequence succeed.
Since the advisor's documented purpose is to be consulted after orientation/work (i.e. after tool calls), this makes the Fable advisor effectively 100% broken in real sessions while appearing healthy in quick smoke tests — which is exactly what our field data shows (104/104 real-session failures vs 9/9 no-tool-call successes, details below).
Environment
- Claude Code 2.1.206, macOS (darwin 25.5.0, arm64); field failures observed on 2.1.201–2.1.205 as well
- First-party Anthropic API (no gateway/Bedrock), subscription auth
- settings.json:
"advisorModel": "fable", main modelclaude-opus-4-8[1m](also reproduced withclaude-sonnet-5andclaude-fable-5mains in field data) - Valid pairing per the advisor docs compatibility table
Deterministic repro (headless, same machine, same settings, minutes apart)
# succeeds
claude -p --settings '{"advisorModel":"fable"}' --model 'claude-opus-4-8[1m]' \
"Call the advisor tool exactly once, then report ADVISOR_OK or ADVISOR_ERROR: <verbatim>."
# fails: unavailable
claude -p --settings '{"advisorModel":"fable"}' --model 'claude-opus-4-8[1m]' \
"First run exactly one Bash command: ls. THEN call the advisor tool exactly once. Report ADVISOR_OK or ADVISOR_ERROR: <verbatim>."
Full matrix, all runs 2026-07-09 20:27–20:42Z on CC 2.1.206 (server correlation IDs verbatim from transcripts):
| advisorModel | Prior tool call | Result | Round trip | Correlation |
|---|---|---|---|---|
| fable | none | ✅ advisor_redacted_result | ~25s | srvtoolu_01Sq1F3T71xu3qgruQCb2EGb / req_011Ccs7cWoDDnaQguGtYTxgp, 20:28:30Z |
| fable | 1× Bash(ls) | ❌ unavailable | 3.9s | srvtoolu_01CnqkdFmRQp4LPvt7iTsSJu / req_011Ccs7YJqmGP9vxyzyn5XRX, 20:27:32Z |
| fable | 1× Read (20 lines) | ❌ unavailable | 3.4s | srvtoolu_01E4RMdGDw89Mt7zFiF85FYY / req_011Ccs7ai73mPCyMDLrmij72, 20:28:05Z |
| opus | 1× Bash(ls) | ✅ succeeds | ~29s | srvtoolu_018m657efRo6RStmFpCdC4du / req_011Ccs8e2CBPb12ngAUqs8sb, 20:41:56Z |
| opus | none | ✅ succeeds | — | (multiple runs earlier same day) |
Note the latency signature: failures return in ~3–4s (before any advisor-side inference), successes take 25–47s. usage.iterations never shows an advisor iteration for the failing calls.
Field data: why this looks like other symptoms but isn't
Scanning all local transcripts since the feature was enabled here (2026-07-05): 113 advisor calls → 104 × unavailable, 9 × success. Every failure had ≥3 prior tool calls in the transcript; every success had exactly zero. Discriminators we ruled out by A/B before finding the tool-call trigger:
- Transcript size (cf. #67609): failures at 36K tokens, success at 700K+ (single huge user message, no tool calls). Size does not predict outcome; prior tool use does.
- Background/daemon sessions: a fresh
claude --bgjob calling advisor immediately succeeds; interactive/headless sessions fail after one tool call. Session kind is a proxy for "did work before consulting", not a cause. [1m]context beta,--permission-mode bypassPermissions,--agent: each tested in isolation, no effect.- MCP / ToolSearch-loaded deferred tools (cf. #73923, #76049): the failing repro above has no MCP servers and never invokes ToolSearch — one native
Bash/Readcall suffices. Also, unlike #73923, the Opus advisor is not affected here (2×2 executor/advisor matrix above).
Related issues
- #75971 — same Fable-fails/Opus-succeeds observation; this report adds the precise trigger (any prior tool call) and a 1-command repro.
- #67609 — the ~100K-size theory is contradicted by the data above (36K failures without size, 700K success without tool calls).
- #76049 — reproduces without any MCP servers or deferred-tool load; a single native tool call is sufficient.
- #73923 (closed NOT_PLANNED) — closest mechanism report, but there both executors failed and the trigger was ToolSearch loads; here Opus advisor is immune and no ToolSearch is involved.
- #75903 / #74530 / #67411 — confirmed side effect: after the first
unavailable, the client latches the tool off for the whole session ("The advisor tool is unavailable. Do not try to use it again."), so long-lived sessions never recover even when a fresh call would work.
Expected
Fable 5 advisor succeeds after tool calls, like the Opus advisor does — or, failing that, a specific error code instead of the generic unavailable.
---
🤖 Investigation and repro matrix produced with Claude Code
This issue has 8 comments on GitHub. Read the full discussion on GitHub ↗