Auto mode classifier persistently unavailable — 2+ weeks, reproduces across accounts, machines, OSes, and CLI versions
Auto mode has been unable to approve any Bash/Write/Edit action for ~2 weeks. Every attempt returns:
claude-{model} is temporarily unavailable, so auto mode cannot determine the safety of {tool} right now.
Systematically ruled out the usual causes:
| Variable changed | Result |
|---|---|
| Session model: Opus 5 → Sonnet 5 | Same failure, error message just swaps the model name |
| dangerouslyDisableSandbox: true on the Bash call | Still routed through classifier, still fails |
| In-repo, fully-allowlisted paths vs. out-of-repo paths | Elevated-risk actions (external paths, self-permission-file edits) fail; plain allowlisted in-repo commands succeed by never hitting the classifier at all |
| CLI version: 2.1.220 → 2.1.221 (claude update) | Same failure before and after |
| Machine: Linux (native install) → 2 separate Windows machines | Same failure on all three |
| Account: tested with 2 different accounts | Same failure on both |
Only acceptEdits/default permission mode works, since it skips the classifier entirely. This has been reproducible on every attempt for two weeks straight — not intermittent, not overload-shaped.
Given it survives a device change but not an account change, this looks like an account/org-scoped classifier assignment (per #67542's "no fallback model" mechanism, possibly manifesting as disguised rate-limiting per #60438) rather than a general infra outage.
Related: #67542, #60438, #69726, #68437, #63819
3 Comments
Same failure here, and I think I have the missing piece: the classifier request is getting HTTP 429
rate_limit_error, on an account that is nowhere near its limits.Claude Code already writes a dump on every classifier failure. I have not seen one posted in any of these threads:
%LOCALAPPDATA%\Temp\claude\auto-mode-classifier-errors\<session-id>.txt$TMPDIR/claude/auto-mode-classifier-errors/<session-id>.txtFirst line of every one of mine:
What the dumps show
8 dumps, one per session, 2026-08-01 through 2026-08-06. All 8 are the same 429, across four different model IDs:
| Date | classifier model | classifierTokensEst |
|---|---|---|
| 2026-08-01 |
claude-sonnet-5[1m]| 40258 || 2026-08-02 |
claude-opus-5[1m]| 51534 || 2026-08-03 |
claude-opus-4-8| 33299 || 2026-08-06 |
claude-opus-5| 29243 |Identical 429 with and without the
[1m]suffix, which rules out the long-context variant as a cause. That theory comes up in #83227 and #82653, and I chased it myself for days.Why this is not the account's own usage
organizationRateLimitTier: "default_claude_max_5x"."message":"Error", not the descriptive message the API returns for a genuine plan limit.One observation that may or may not be relevant: my
~/.claude.jsonhasoverageCreditGrantCachereportingavailable: false, eligible: false. If classifier traffic is routed through a pool that requires overage, an account without it would be rejected 100% of the time regardless of remaining quota. That is a guess, but it matches the shape of what I see.Two separate client bugs, verified in 2.1.223
1. The status code is computed and then discarded. The unavailable branch has it:
but the formatter that should render it is a stub:
So a 429 reaches the user as "<model> is temporarily unavailable", which points everyone at model availability and local config. Surfacing
httpStatuswould have ended my investigation on day one instead of day five.2. The fallback to prompting cannot engage on unavailability. This confirms the hypothesis in #82653 at code level:
tengu_auto_mode_fallback_to_askis emitted only in thetranscriptTooLongbranch, while theunavailablebranch returnsbehavior: "deny"directly. Availability errors therefore never count toward the documented 3-strike threshold, which is why nobody ever sees the fallback fire.Scope of the block, in case it helps triage
Working, because they never reach the classifier: read-only tools (Read, Grep, Glob), anything matching a permission allow rule,
acceptEditsmode, and simple Bash commands that clear the local fast path (uname,hostname,node --version, pipes, globs).Blocked 100%: every PowerShell tool call not matching an allow rule, WebFetch on non-allowlisted domains, all MCP tool calls, and Bash commands the fast path will not clear. Note that
node --versionsucceeds through Bash and fails through PowerShell, same command, which isolates the difference to whether the call reaches the classifier at all.Suggested fixes
httpStatusanderrorKindin the user-facing message. At minimum, distinguish "rate limited" from "model unavailable".Environment: Claude Code 2.1.223 (native installer), Windows 11 Pro 26200, Claude Max 5x, session models claude-opus-5 and claude-fable-5. Happy to share more request IDs or the full dump metadata if that helps.
---
If you pull your own dumps: the file contains your full session transcript below the error block. Only the first two lines are needed.
I encountered the same failure in my Claude Code:
⎿ Error: claude-opus-5[1m] is temporarily unavailable, so auto mode cannot determine the safety of Bash right now. Wait briefly and then try this action again. If it keeps failing, continue with other tasks that don't require this action and come back to it later. Note: reading files, searching code, and other read-only operations do not require the classifier and can still be used.Environment: macOS, Claude Code v2.1.220
As a temporary workaround, running
claude --permission-mode bypassPermissionshelps bypass this failure.I encountered the same after I swap the AI model provider from Anthropic to Amazon Bedrock. THe cause is not known yet.