Bash tool intermittently refuses ALL commands when the command/safety classifier is unreachable (fail-closed), macOS 26 — recurring Jul 1/7/8
Summary
Over the last several days, the Bash tool has intermittently refused every shell command because the upstream command/safety classifier (the service that vets each shell command before execution) becomes unreachable. When it can't be reached, Claude Code appears to fail closed — it refuses the command rather than running it un-vetted. File tools (Read/Write/Edit/Grep) are completely unaffected during these windows, which points at the classifier path specifically, not local shell execution.
This is distinct from the already-filed issues:
- #19663 (macOS 26
(No content)) — that's silent empty output; here commands are actively refused. - #32778 (
<shell_execution_boundary>) — that's a deliberate, always-on deployment boundary closed as "not planned"; this is intermittent (flaps on/off across days) and reads as a service outage, not a policy. - #28333 (Windows
EINVAL) — Windows-only, different error, already fixed.
Environment
- OS: macOS 26 (Darwin 25.5.0), ARM64
- Surface: Claude Code Desktop app (not the terminal CLI — no
claudebinary on PATH;claude --version→command not found). App version: see Help → About (reporter to confirm exact build). - Scope: multiple concurrent sessions affected simultaneously during each window.
Symptom / observable behavior
During an outage window, every Bash invocation is refused upstream while all other tools keep working. Representative status observed in-session:
"The Bash tool's safety classifier is in an extended outage (every shell attempt is being refused upstream — read/write/search all still work, but nothing can execute)."
"The command classifier is briefly unavailable — I'll use the read-only file tool instead."
"Bash is down for the moment; continuing the audit via Read."
Timeline (multiple independent sessions, macOS 26)
- Jul 1, 2026 — brief blips: "The command classifier is briefly unavailable. Let me wait and retry."
- Jul 7, 2026 — recurring: "Bash is down for the moment; continuing via Read" / "Classifier's briefly down for Bash — Read still works."
- Jul 8, 2026 — extended outage, ongoing at time of filing: "every shell attempt is being refused upstream."
Multiple separate sessions hit this in the same windows, which suggests an account/region/service-side condition rather than a per-session or per-repo problem.
Expected behavior
Either (a) the classifier stays available, or (b) if it's transiently unreachable, the tool surfaces a clear, distinguishable error (e.g. "classifier temporarily unavailable — retry") and/or retries with backoff, rather than presenting as a blanket Bash refusal that's easy to mistake for a permission denial.
Impact
Shell-dependent work (git, builds, deploys, test runs) stalls entirely during these windows; only read-only/file work can proceed. Not currently reflected on status.claude.com, so it appears untracked.
To attach
- Raw upstream error string from a tool-result payload during an outage window (not surfaced in the normal transcript view).
- Exact
claude --versionand timestamps (UTC) for the Jul 8 window.