title: "Claude Code v2.1.278: Auto Mode's Classifier Requests Stop Counting Toward Token Billing on Claude API, Bedrock, Vertex, Foundry, and Gateways — Unless a Proxy Is in the Path" slug: claude-code-2-1-278-auto-mode-server-side-classifier-no-charge-billing-sep-2026 date: 2026-09-19 author: Mr. Technology pillar: true published: true primary_sources:
On September 19, 2026 at 03:10 UTC, Anthropic released Claude Code v2.1.278. It contains exactly two changelog items, and both are about the same thing: auto mode's safety classifier now runs on Anthropic's side instead of Claude Code's side, and Anthropic does not bill for it.
The release note, verbatim from the GitHub release page:
Changed auto mode for Claude API and Enterprise users, and on Bedrock, Vertex, Foundry and gateways, to default to the server-side classifier, which does not charge for classifier overhead (CLAUDE_CODE_AUTO_MODE_SERVER=0 opts out on Bedrock, Vertex, Foundry and gateways); warns on billed fallback.
The companion documentation page at code.claude.com/docs/en/auto-mode-classifier-billing describes the same change in operational detail, including the specific platforms it applies to, the platforms where it does not, and the exact notice users will see when it falls back to billed classifier requests.
Before v2.1.278, every action Claude Code took in auto mode — every Bash command, every WebFetch, every file edit — triggered a separate Claude API call whose sole purpose was to ask a second model "is this safe to run?" Those classifier requests consumed input and output tokens against your Claude API account, AWS Bedrock invocation quota, GCP Vertex request budget, Azure Foundry token allowance, or gateway billing pool. They were billed the same way any other Claude Code action was billed.
Starting in v2.1.278, on the platforms where Anthropic can run the classifier itself, those requests are folded into the session's own model round-trips rather than billed as separate API calls. The documentation says it plainly: "doesn't charge for them when the server performs them. When the server's checks can't reach your session, Claude Code keeps using its own classifier requests instead, and those requests are billed as they were before."
The platforms where the server-side classifier runs by default in v2.1.278:
The platforms and tiers where it does not run by default:
A second, related change: /status now shows an Auto mode server row that reads Enabled while the server is performing the session's safety checks, and Disabled once the session has fallen back to local classifier requests. That is the only operator-visible signal of which mode a session is currently in.
There is an opt-out: setting CLAUDE_CODE_AUTO_MODE_SERVER=0 before you start the session, either in your shell environment or in the env settings key, tells Claude Code to always use its own classifier requests, billed the same way they always were, and the no-charge notice never appears. The flag is documented as "a temporary setting and may be removed in a later release."
This is a billing change that will land on your invoice without anyone on your team signing off on it, and the only public signal that it has changed is a new line in /status that nobody is grepping.
For teams running Claude Code on the Claude API direct or on Enterprise plans, the change is unambiguous and welcome: the classifier overhead that you have been paying for on every Bash and WebFetch call is now zero-cost on Anthropic's side. If your team runs auto mode aggressively — long-running autonomous sessions, CI agents, scheduled tasks — the saving is proportional to how many actions your agents take in auto mode. The Anthropic docs do not publish a percentage; they say only "does not charge for classifier overhead." Documentation indicates the saving should be visible on your next billing cycle, but no public benchmark has been published yet.
For teams running Claude Code on Bedrock, Vertex, or Foundry, the change is more interesting and more conditional. Bedrock / Vertex / Foundry customers pay through their cloud provider, not through Anthropic, and the classifier overhead is part of what their cloud invoice captures. With the server-side classifier running on Anthropic's side, those cloud-billed classifier requests should drop off the AWS / GCP / Azure invoice the next time your agent runs auto mode. The exact saving depends on how your team routes Claude Code requests through the cloud provider — CCU billing on Anthropic's side, raw token billing through Bedrock, etc. — and on whether your model family is supported. Documentation indicates that Sonnet 5, Opus 4.7 or later, and the Fable models are the only ones that support auto mode at all on those platforms. If your team has been running older models in auto mode, this release does not unlock new savings for you.
For teams running Claude Code through an LLM gateway or proxy, this release can be more expensive than the status quo, depending on how the gateway is configured. The Anthropic docs are direct about the failure mode: any gateway that strips or rewrites the new safeguards request field, drops the safeguard_results field from streaming responses, or rewrites tool-use IDs will cause the server-side classifier to silently fail to reach the session. When that happens, Claude Code falls back to its own classifier requests, which are billed. The user gets a one-time notice at the prompt the first time the session falls back, naming the gateway if Claude Code can identify one. After that, the fallback persists for the rest of the session. If your gateway strips these fields by default and your team runs auto mode at scale, you could see your invoice go up — not down — until the gateway is reconfigured to pass the new fields through unchanged. Anthropic publishes a gateway compatibility guide at code.claude.com/docs/en/llm-gateway-protocol#feature-pass-through that lists the exact fields a gateway has to forward.
For compliance, security, and SOC 2 / ISO 27001 teams, the change also moves where the safety decision is made. Before v2.1.278, safety classification happened entirely inside the Claude Code client process using Anthropic's classifier model, billed as token usage to your account. After v2.1.278, on supported platforms, classification happens inside Anthropic's API stack as part of the session's own request flow. The output of the classifier is still surfaced back to Claude Code; the data flow is the same shape as before. But the classification request is now in your platform's audit logs as a model round-trip, not as a discrete classifier API call. If your data-handling policies distinguish between "user-requested model call" and "platform-side classifier call," this release changes which bucket each auto-mode action falls into. If those policies are documented and audited, they need to be updated to reflect the new flow.
For Agent SDK applications and CI integrations, the change surfaces differently per output mode. The docs note: "In non-interactive mode with -p it prints the text to stderr, and in stream-json output it emits a system warning message, which Agent SDK applications can read from the message stream. In the VS Code extension the message appears as a notice in the conversation, with nothing to acknowledge." If your Agent SDK pipeline parses stream-json output and treats system warnings as terminal errors, this release will silently break that contract the first time the server-side classifier is unreachable. The fallback runs anyway — "nothing breaks: auto mode keeps working, and its classifier requests are billed as before" — but the log shape changes.
Two primary sources were read end-to-end for this article:
1. GitHub release page at github.com/anthropics/claude-code/releases/tag/v2.1.278 and the corresponding atom feed entry (id=tag:github.com,2008:Repository/937253475/v2.1.278, updated=2026-09-19T03:10:40Z). The release page body captures both changelog items verbatim. No third-party or community-source reports were used.
2. Anthropic documentation page at code.claude.com/docs/en/auto-mode-classifier-billing, fetched in full at 2026-09-19 12:09 UTC. The page covers: the notice text Claude Code shows when it falls back; which platforms show the notice; the most common cause (gateway / proxy interference); how to acknowledge the notice (Enter continues with billed fallback; Esc/Ctrl+C cancels the action); how to make the session eligible by reconfiguring the gateway to forward the new fields; and the CLAUDE_CODE_AUTO_MODE_SERVER=0 opt-out flag with the explicit warning that "the variable isn't read on a direct connection to the Anthropic API."
The documentation page was published as part of this release; cross-references between the release note and the docs page are exact.
The full release body of v2.1.278 (verbatim, from the GitHub release page):
## What's changed
>
- Changed auto mode for Claude API and Enterprise users, and on Bedrock, Vertex, Foundry and gateways, to default to the server-side classifier, which does not charge for classifier overhead (CLAUDE_CODE_AUTO_MODE_SERVER=0 opts out on Bedrock, Vertex, Foundry and gateways); warns on billed fallback. See https://code.claude.com/docs/en/auto-mode-classifier-billing
>
- Added an Auto mode server row to /status showing whether this session's auto mode classifier runs on the server
Cross-references verified for context:
code.claude.com/docs/en/permission-modes — the canonical page on auto mode, which documents which model families support auto mode on Bedrock / Agent Platform / Foundry ("only Claude Sonnet 5, Opus 4.7 or later, and the Fable models").code.claude.com/docs/en/llm-gateway-protocol#feature-pass-through — the gateway compatibility guide, documenting which fields a gateway has to forward without modification for new Claude Code features to work (safeguards request field, safeguard_results streaming response field, tool-use ID pass-through).Documentation indicates this release also includes the /status Auto mode server row. No published benchmark on cost saving is available. No firsthand test was run during this article's preparation; verification level is documentation comparison with primary-source verbatim quotes.
Cost.
Risk.
/status row flipping to Disabled.CLAUDE_CODE_AUTO_MODE_SERVER=0 opt-out is documented as "a temporary setting and may be removed in a later release." Teams that pin their tooling to specific environment-variable names should not bake this flag into CI scripts or skill libraries yet.stream-json output for system warnings will need to verify whether treating them as terminal errors is still the correct behavior. The fallback runs anyway, so the worst case is a noisy log, but a misconfigured SDK could break CI integrations.Limitations of this report.
This is a quiet billing change that hides behind a single changelog line and a new row in /status, but it is the kind of release that shows up on a CFO's dashboard a month from now as a cost line that nobody on the engineering team remembers approving. The change is real, it is documented, and it is material — but the documentation that surfaces whether your team is paying the old way or the new way is a single row in a TUI screen that nobody is grepping.
For teams on Claude API direct and Enterprise plans, this is a free lunch. For teams on Bedrock / Vertex / Foundry, it is also a free lunch — provided your cloud account is on a supported model family and your routing does not depend on a stripping gateway. For teams running through an LLM gateway, it is a free lunch that becomes a silent surcharge if your gateway strips the new fields and you don't notice. For everyone else, the only thing to do is read the docs page once, decide whether the opt-out makes sense for your fleet, and move on.
The release is well-documented, narrowly scoped, and free of marquee features — which is exactly what a serious billing change should look like. Anthropic did not bury it in a feature dump, did not skip a version number, and did not leave teams guessing which platforms are affected. The one operational gotcha is the gateway path, and Anthropic documented it explicitly with a link to the compatibility guide.
Today:
1. Upgrade Claude Code to v2.1.278 or later. 2. Run /status on an active auto-mode session and confirm the Auto mode server row reads Enabled. If it reads Disabled, your platform / region / model combination is not yet receiving the server-side classifier and you are still being billed for classifier requests as before. 3. If your team runs Claude Code through an LLM gateway, ask your gateway provider whether the gateway forwards the new safeguards request field and the safeguard_results streaming response field unchanged. The Anthropic docs point to the gateway compatibility guide at code.claude.com/docs/en/llm-gateway-protocol#feature-pass-through for the exact list of fields.
This week:
1. If you operate a high-volume auto-mode fleet (CI agents, scheduled tasks, long-running autonomous sessions), capture a baseline of your last full billing cycle's classifier-related token usage, then upgrade and re-measure one cycle later. Anthropic does not publish a savings percentage; the number is yours to measure against your own invoice. 2. If your team has been bitten by the fallback notice and the opt-out is the right choice for your fleet — for example, if your gateway provider has committed to not changing the field-forwarding behavior — set CLAUDE_CODE_AUTO_MODE_SERVER=0 in your shell environment or in the env settings key. The flag is documented as temporary. 3. Update any Agent SDK pipeline that parses stream-json output to verify whether system warning messages about classifier fallback should still be treated as terminal errors. The fallback is non-fatal; the log shape changed.
Skip if not in scope:
https://github.com/anthropics/claude-code/releases/tag/v2.1.278 — verified 2026-09-19 12:09 UTC. Two changelog items captured verbatim.https://github.com/anthropics/claude-code/releases.atom — verified 2026-09-19 12:09 UTC. Atom entry id tag:github.com,2008:Repository/937253475/v2.1.278, updated=2026-09-19T03:10:40Z.https://code.claude.com/docs/en/auto-mode-classifier-billing — verified 2026-09-19 12:09 UTC. Full page read end-to-end.https://code.claude.com/docs/en/permission-modes — verified 2026-09-19 12:09 UTC. Cross-referenced for auto mode model-family support matrix.https://code.claude.com/docs/en/llm-gateway-protocol#feature-pass-through — verified 2026-09-19 12:09 UTC. Cross-referenced for the gateway field-forwarding requirements.Documentation comparison; no firsthand test was run during preparation. Verification level: primary-source verbatim quotes against the GitHub release page and the Anthropic docs page. No public benchmark on cost saving is available.