[Bug] Auto-mode classifier inherits [1m] suffix, causing repeated permission check failures and session lockout

Status Open
Reported on v2.1.210
Maintainer reply None cached
Activity 0 comments · opened Jul 21, 2026

Bug Description

`` Auto-mode classifier inherits the [1m] suffix, then fails closed — repeatedly disabling auto mode ## Summary On a claude-opus-4-8[1m] session, the auto-mode permission classifier resolves to claude-sonnet-5[1m]. It correctly switches Opus->Sonnet per 2.1.210, but incorrectly carries over the [1m] 1M-context suffix. That variant is capacity-constrained, so tool calls fail closed with: "claude-sonnet-5[1m] is temporarily unavailable, so auto mode cannot determine the safety of Bash right now." There is no fallback — the main loop keeps working while every side-effectful Bash/Edit/PowerShell/Agent call is blocked until the variant recovers. Env: 2.1.216 native installer, Windows 11, model claude-opus-4-8[1m], permissions.defaultMode "auto". ## Evidence Distinct transcript lines matching "cannot determine the safety of" across ~/.claude/projects/**/*.jsonl, against total tool_use calls per day: date tool calls classifier failures --------------------------------------------------- Jun 25 - Jul 7 ~20k 0 <- did not exist Jul 8 4,384 8 Jul 14 4,752 74 Jul 16 1,349 12 <- claude-sonnet-5[1m] appears Jul 20 6,967 107 198 of ~248 total failures (80%) name a [1m] variant. Mostly Bash (416 raw occurrences), then PowerShell, Edit, Agent. Impact is larger than the raw count: per the docs, 3 consecutive or 20 total blocks pauses auto mode entirely, and those thresholds aren't configurable. One outage burst therefore disables auto mode for the rest of the session. This is not stricter judgment — my *denial* rate fell over the same window (20-60 per 1k tool calls in early July, 4.9 on Jul 21). The classifier isn't blocking more; it's unreachable. ## Expected 1. Don't inherit the [1m] suffix. A permission check sends a transcript excerpt plus one pending action — it has no need for 1M context, and pinning a blocking on-every-call check to the scarcest capacity pool is the worst available tradeoff. 2. Fall back to a sibling model when the pinned classifier is unavailable mid-session. The docs describe first-request validation with fallback; that logic appears not to re-run once the model is pinned. 3. Don't count classifier *outages* toward the auto-mode-pause thresholds. An infrastructure failure isn't a safety judgment, but is currently treated as one. This is local logic and would blunt most of the pain even if the [1m] routing is never fixed. ## Related Same root cause as #38537, #74949, #68437, and #67542 (no fallback; CLAUDE_CODE_AUTO_MODE_MODEL registered but never consulted). #67542 was closed as duplicate; the behavior is still present in 2.1.216. ``

Environment Info

  • Platform: win32
  • Terminal: pycharm
  • Version: 2.1.216
  • Feedback ID: 5002bff0-ae28-4c0e-a2de-f8241efadf1c

Errors

[]

View original on GitHub ↗