Bash tool intermittently refuses ALL commands when the command/safety classifier is unreachable (fail-closed), macOS 26 — recurring Jul 1/7/8

Open 💬 0 comments Opened Jul 8, 2026 by stewartdavidp-ship-it

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 claude binary on PATH; claude --versioncommand 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, 2026extended 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 --version and timestamps (UTC) for the Jul 8 window.

View original on GitHub ↗