Home › Articles

Claude Code auto mode unavailable or classifier blocked

Updated 2026-11-06

Claude Code's auto mode hands permission decisions to a classifier instead of prompting you on every command. When it works, the status bar shows ⏵⏵ auto mode on and long tasks keep moving. When it doesn't, you see one of two different problems:

Those need different fixes. This page is a checklist for both, checked against Anthropic's docs on 2026-11-06. For the wider permission-mode, allow-rule and sandbox setup across Claude Code, Cursor and Codex, see how to stop asking permission for every command.

Symptom → which problem you have

What you seeUsually meansStart here
auto mode disabled by settings, or Auto missing from Shift+TabUnavailable to this sessionRequirements and disableAutoMode
Session starts in Manual with no error, even though you set "defaultMode": "auto"Setting is in a project file that ignores autoMove it to ~/.claude/settings.json
… is temporarily unavailable, so auto mode cannot determine the safety of …Classifier request failedRetry; on Bedrock check model access
Auto mode could not evaluate this action… or Not run · auto mode's check had no usable answerNo usable classifier verdictError reference section below
Notice that this session isn't eligible for no-charge classifier requestsServer-side checks aren't reaching you; local classifier requests are billedGateway / CLAUDE_CODE_AUTO_MODE_SERVER
Auto mode pauses and starts prompting after several blocksRepeated-block threshold hitTrusted infrastructure

1. Make sure auto mode can start

The docs list these availability requirements:

Anthropic may also turn auto mode off server-side, or reject it for your account. A session that received either answer keeps auto mode off until it ends — start a new session later.

Since Claude Code v2.1.283, auto mode is the built-in starting mode for interactive terminal and VS Code sessions. If you still start in Manual with no error, check where you put defaultMode:

{
  "permissions": {
    "defaultMode": "auto",
    "ask": [
      "Bash(git push *)",
      "Bash(gh pr create *)"
    ]
  }
}

Put that file at ~/.claude/settings.json. The docs are explicit: "auto" (and "bypassPermissions") do not take effect from a project's .claude/settings.json or .claude/settings.local.json. A project file can still set Manual, acceptEdits or plan. The ask rules in the example keep a human checkpoint before git push and gh pr create even while auto mode is on — content-scoped ask rules always prompt.

One-session override without editing a file:

claude --permission-mode auto

For claude -p and Agent SDK runs, the built-in start mode is Manual (config value default) as of v2.1.302. Pass --permission-mode auto there if you want the classifier, or pass an allowlist with --allowedTools.

2. When the classifier fails

Auto mode can be available and still refuse an action. The error reference names these shapes (checked 2026-11-06):

When a blocked action did get a classifier verdict, open /permissions → Recently blocked, read the command, and press r to approve a retry. Approving there does not add a lasting allow rule; for a pattern you want forever, add it under autoMode.allow or fix the missing environment entry.

3. Server-side checks, gateways and the billing notice

Where server-side classifier review is on, the server checks actions as part of the session's own model requests at no charge. If those checks never reach your session, Claude Code falls back to its own classifier requests. On accounts that bill those requests you can see:

We're changing auto mode to no longer charge for classifier requests in Claude Code. However, this session isn't eligible.

Press Enter to continue (auto mode keeps working; classifier requests are billed as before). Esc cancels the held action. Pro, Max, Ultra and Team plans never see this notice.

The usual cause is an LLM gateway or proxy that strips headers, drops fields such as safeguards, or rewrites responses. Ask the gateway to pass requests and replies through unchanged. If it cannot, skip asking the server:

export CLAUDE_CODE_AUTO_MODE_SERVER=0
claude --permission-mode auto

Or set the same variable under the env key in settings. On a direct Anthropic API connection the variable needs Claude Code v2.1.281 or later. In a running auto-mode session, /status shows an Auto mode server row as Enabled or Disabled.

4. Repeated blocks → teach the classifier your infrastructure

If the classifier blocks an action 3 times in a row or 20 times total, auto mode pauses and Claude Code resumes prompting. Approving the prompted action resumes auto mode. The thresholds are not configurable.

Repeated false positives usually mean the classifier is missing your org's repos, buckets or domains. By default it trusts only the working directory and the remotes configured when the session started. Add trusted infrastructure in user or managed settings (not in a project's .claude/settings.json — the classifier ignores autoMode there on purpose):

{
  "autoMode": {
    "environment": [
      "$defaults",
      "Organization: Acme Corp. Primary use: software development",
      "Source control: github.com/acme-corp and all repos under it",
      "Trusted internal domains: *.corp.example.com, api.internal.example.com",
      "Key internal services: Jenkins at ci.example.com, Artifactory at artifacts.example.com"
    ]
  }
}

Keep "$defaults" in the array so you inherit Anthropic's built-in entries. Leaving it out replaces the whole list for that section.

Faster path in a session: run /auto-mode-setup and review the draft before accepting. Then confirm what the classifier will actually use:

#!/usr/bin/env bash
# Print the auto-mode rules Claude Code's classifier actually uses.
# Run from your own shell (not inside a Claude session).
set -euo pipefail

echo "== Claude Code version =="
claude --version

echo
echo "== Built-in defaults (no personal overrides) =="
claude auto-mode defaults | python3 -c 'import json,sys; d=json.load(sys.stdin); print("keys:", sorted(d));
[print(f"{k}:", len(d.get(k, []))) for k in ("environment","allow","soft_deny","hard_deny")]'

echo
echo "== Effective config (your settings applied) =="
claude auto-mode config | python3 -c 'import json,sys; d=json.load(sys.stdin); print("keys:", sorted(d)); print("environment entries:", len(d.get("environment", [])))'

echo
echo "Tip: in a running auto-mode session, /status shows Auto mode server as Enabled or Disabled."

We ran claude auto-mode defaults and claude auto-mode config on 2026-11-06 with Claude Code 2.1.197 on this machine (no custom autoMode in settings). Both returned JSON with keys allow, environment, hard_deny and soft_deny; the defaults counted 9 environment entries, 16 allow rules, 55 soft_deny rules and 1 hard_deny rule. We did not start an interactive auto-mode session or call a model for a live classification.

For a hard guarantee that a command always prompts, prefer permissions.ask (as in the user-settings example) over a conversational "don't push until I review" — conversation boundaries can disappear after context compaction.

5. When to stop fighting the classifier

Auto mode "reduces permission prompts but does not guarantee safety". Keep ask or deny rules for the commands you never want the classifier to clear on its own.

A ten-minute checklist

  1. Confirm Auto appears when you press Shift+Tab. If it doesn't, check model, provider and disableAutoMode.
  2. If sessions start in Manual with no error, move "defaultMode": "auto" to ~/.claude/settings.json.
  3. Add ask rules for git push and your publish command.
  4. Run the check script. If routine internal actions keep blocking, add autoMode.environment entries or run /auto-mode-setup.
  5. If you hit the gateway billing notice, fix pass-through or set CLAUDE_CODE_AUTO_MODE_SERVER=0.
  6. If the classifier is flaky and you need to ship, switch to Manual + sandbox auto-allow for the session and come back later.

FAQ

Why is Claude Code auto mode unavailable?

Check the supported model for your provider, whether managed settings set permissions.disableAutoMode to "disable", and whether Anthropic turned auto mode off server-side for your account. A session that got a server rejection keeps auto mode off until it ends, so start a new session later. If you set defaultMode to "auto" in a project's .claude/settings.json, that value is ignored — move it to ~/.claude/settings.json.

What does "auto mode cannot determine the safety" mean?

The classifier request failed, so Claude Code did not approve the action. Transient rate limits and overloads usually clear on retry. On Amazon Bedrock it can also mean your account cannot invoke the named classifier model. Reads and working-directory edits still run; switch to Manual if you need to approve the blocked action yourself.

Why does Claude Code keep prompting after several classifier blocks?

If the classifier blocks an action 3 times in a row or 20 times in the session, auto mode pauses and Claude Code resumes prompting. Approve the prompted action to resume. Repeated blocks usually mean missing trusted infrastructure in autoMode.environment — run /auto-mode-setup or add entries, then confirm with claude auto-mode config.

What is the notice about classifier request charges?

Where server-side checks aren't reaching your session, Claude Code falls back to its own classifier requests, which count toward token usage on accounts that bill them. The usual cause is an LLM gateway that strips headers or fields. Press Enter to continue, or set CLAUDE_CODE_AUTO_MODE_SERVER=0 if your gateway cannot pass the checks through. Pro, Max, Ultra and Team plans never see this notice.

Is auto mode the same as Cursor Auto-review or Codex Approve for me?

No. They are all "a second model reviews risky actions", but the settings, block lists and fallbacks differ. This page is about Claude Code's auto mode. For the three-tool comparison of reviewer modes, allow rules and sandboxes, see how to stop Claude Code, Cursor and Codex asking permission for every command.

Sources

Official docs, checked 2026-11-06.

Get the free rules sampler + new tips by email

Confirm your email and we'll send you straight to the sampler download. Then one short email every two weeks covering tool format changes (Cursor, Claude Code, Codex, Windsurf, Copilot), new rules and kit updates. No spam.

We store only your email, with our email provider Resend. See the privacy policy.

Unsubscribe anytime from any email. Rather skip email? Get the sampler on GitHub or download the zip directly.