結論:サードパーティのゲートウェイや中継(独自の ANTHROPIC_BASE_URL)経由で Claude Code を使っていて、auto mode にすると毎ターン 403 や 422 で失敗する場合は、2.1.317 にアップデートすれば解決します。
- Claude Code 公式 CHANGELOG によると、2.1.317 は「base URL に設定した LLM ゲートウェイがサーバー側の安全チェックに 403 または 422 を返すと、auto mode が毎ターン失敗する」問題を修正しました。
apiKeyHelper使用時の 403 は変わりません。npm での 2.1.317 の公開は 2026 年 11 月 3 日 07:57(北京時間)です。 - 11 月 3 日午後(北京時間)、ローカルプロキシで安全チェックを拒否するゲートウェイを再現しました。2.1.316 は最初のリクエストで失敗し、以降も毎ターン失敗。2.1.317 はチェック用フィールドを外して 1 回再試行し、タスクを完了しました。
- aicodewith(
https://api.aicodewith.ai)に直接つないだ場合、2.1.316 と 2.1.317 のどちらでも auto mode はタスクを完了しました。当サイトの API は安全チェックのリクエストに 200 を返し、Claude Code はローカル分類器に切り替わります。 - すぐにアップデートできない場合は
CLAUDE_CODE_AUTO_MODE_SERVER=0を設定すると、auto mode がサーバーにチェックを依頼しなくなります。2.1.316 で動作を確認済みです。
API Key を作成して、Claude Code・Codex・Cursor で Claude を使う →
2.1.317 の変更点
auto mode は Claude Code の権限モードの一つで、操作ごとに承認する代わりに、分類器がバックグラウンドで各操作の安全性をチェックします。公式の権限モードのドキュメントによると、ANTHROPIC_BASE_URL が LLM ゲートウェイやプロキシを指している場合、Claude Code はまずサーバーにチェックを依頼し(サーバー側分類器)、サーバーがチェックしないときはローカル分類器に切り替えます。
問題はこの「サーバー側チェック」の段階です。Claude Code はリクエストに safeguards フィールドと beta ヘッダーを追加します。これを認識できないゲートウェイは 403(拒否)や 422(不正なフィールド)を返し、旧バージョンはこれを通常の失敗として扱うため、毎ターン失敗していました。
CHANGELOG によると、2.1.317 の auto mode とゲートウェイ関連の項目は次のとおりです。
| 項目 | 内容 |
|---|---|
| 主な修正 | base URL のゲートウェイがサーバー側安全チェックに 403 / 422 を返しても、auto mode が毎ターン失敗しなくなった(apiKeyHelper 使用時の 403 は変更なし) |
| 新しい通知 | サブエージェントのツール呼び出しに対して auto mode のチェックが答えを返さないとき、通知を表示。以前はメイン画面に何も出なかった |
| 403 の表示 | 地域やネットワークのブロック(HTTP 403)がサインイン失敗として表示されなくなり、ブロックであることを説明する |
| OTel | メトリクス、イベント、span に anthropic.plan、anthropic.seat_type、anthropic.provider、anthropic.custom_base_url を追加 |
それ以前のバージョンでも同じ領域が修正されています。
| バージョン | 関連項目 |
|---|---|
| 2.1.316 | プロキシや LLM ゲートウェイの背後で、ホストアプリ(Claude Desktop など)が実験的 beta をオフにして起動したセッションで CLAUDE_CODE_AUTO_MODE_SERVER=1 が無視される問題を修正 |
| 2.1.314 | 安全チェックが判定を返さないとき、auto mode が呼び出しを blocked と報告し /permissions に載せる問題を修正 |
| 2.1.304 | ガイド付き設定 /auto-mode-setup が Bedrock、Vertex、Foundry、Claude apps gateway、テレメトリ無効のセッションでも利用可能に |
| 2.1.302 | クライアント側分類器のモデルを選ぶ CLAUDE_CODE_AUTO_MODE_MODEL を追加(サーバー側 auto mode には影響しない)。サードパーティプロバイダー、テレメトリ無効、新規インストールでは、権限モード未指定の claude -p は default で開始し、--permission-mode auto なら auto のまま |
影響を受けるのは誰か
次の 3 つすべてに当てはまる場合です。
- auto mode を使っている。ドキュメントによると、2.1.283 以降はターミナルと VS Code の開始モードが auto mode です。
ANTHROPIC_BASE_URLがサードパーティの LLM ゲートウェイ、中継、社内プロキシを指している。- そのゲートウェイが、
safeguardsフィールドやdangerous-tool-usebeta ヘッダーを含むリクエストに 403 や 422 を返す。よくある原因は、リクエストボディの厳格な検証(未知のフィールドで 422)やセキュリティポリシー(403)です。
Anthropic API に直接サインインしている場合や、未知のフィールドをそのまま転送するゲートウェイの場合は影響しません。ゲートウェイが転送すべき内容は公式 LLM ゲートウェイのドキュメントを参照してください。
安全チェックのリクエストの中身
Claude Code と aicodewith の間に、リクエストを記録するだけのローカルプロキシを置きました。auto mode セッションの最初のリクエストには次の内容が含まれていました(抜粋)。
POST /v1/messages?beta=true
anthropic-beta: claude-code-20250219, ..., dangerous-tool-use-2026-09-03, afk-mode-2026-01-31
"safeguards": [{"type": "dangerous_tool_use",
"classifier_context": {"v": 1, "permission_mode": "auto", "platform": "linux", ...}}]
サーバーがチェックしない場合、以降のリクエストには safeguards が付きません。その代わり、Bash などを実行する前に、ローカル分類器のモデル(既定は claude-sonnet-5)へ別のリクエストを送ります。
検証:2.1.316 と 2.1.317 の比較
環境:2026 年 11 月 3 日 15:12〜15:35(北京時間)、Linux、モデル claude-opus-5-5、当サイトのキー、毎回新しい設定ディレクトリ。タスクは、フィボナッチ数列を出力する fib.py を書いて python3 で実行させるもので、ファイル書き込み 1 回と、auto mode のチェックを通る Bash コマンド 1 回が発生します。
claude -p "Create a file fib.py that prints the first 10 Fibonacci numbers, then run it with python3 and tell me the output." \
--permission-mode auto --model claude-opus-5-5 \
--output-format json --debug-file ./cc-debug.log
grep -E "server-classifier|API error" ./cc-debug.log
「模擬ゲートウェイ」は、ローカルプロキシに追加したルールです。safeguards フィールドを含むリクエストには 403 または 422 を返し、それ以外は aicodewith にそのまま転送します。CHANGELOG に書かれた状況を再現するためのもので、aicodewith の実際の挙動ではありません。
| ケース | 2.1.316 | 2.1.317 |
|---|---|---|
| aicodewith に直接接続 | 成功、3 ターン、12.0 秒 | 成功、4 ターン、17.7 秒 |
| 模擬ゲートウェイが安全チェックに 403 | 0.6 秒で失敗、Failed to authenticate. API Error: 403 ...。次のターンも失敗 | 成功、3 ターン、11.8 秒 |
| 模擬ゲートウェイが安全チェックに 422 | 0.7 秒で失敗、API Error: 422 ...。次のターンも失敗 | 成功、3 ターン、15.7 秒 |
| 模擬 403 + apiKeyHelper | — | 11 回再試行後に失敗、248.4 秒、Failed to authenticate |
| 2.1.316 + CLAUDE_CODE_AUTO_MODE_SERVER=0、模擬 403 / 422 | 成功、13.7 秒 / 10.8 秒 | 不要 |
2.1.317 の直接接続で 1 ターン多いのは、Claude が出力確認のためにスクリプトをもう一度実行したためで、バージョンとは無関係です。成功したすべての実行で 0、1、1、2、3、5、8、13、21、34 が出力されました。
aicodewith に直接接続:両バージョンとも正常
当サイトの API は safeguards 付きのリクエストに 200 を返しますが、判定結果は返しません。debug ログでは、Claude Code がサーバー側はチェックしないと判断し、セッションの残りでローカル分類器を使っていることがわかります。
[server-classifier] the platform gave no classification for this request (server_no_result);
treating that as this deployment's answer: auto mode classifies locally for the rest of
this session and stops sending the classifier context
[auto-mode] new action being classified: tool=Bash actionChars=26
[Stall] classifier_request_finished tool=Bash stage=xml_s1 outcome=ok durationMs=2727
Bash コマンドごとのローカルチェックは約 2.5〜2.7 秒でした。起動時に stderr へ、現在のアドレスは新しいサーバー側分類に対応していないが auto mode は引き続き動作する、という英語の案内が出ますが、無視してかまいません。
2.1.316 で安全チェックを拒否するゲートウェイ:毎ターン失敗
{OLD403}
403 が Failed to authenticate(認証失敗)と表示されるため、キーの間違いに見えます。実際にはキーは正しく、manual モードなら同じ設定で動きます。
2.1.317:チェック用フィールドを外して 1 回再試行
アップデート後、同じゲートウェイでの debug ログは次のとおりです。
[ERROR] API error (attempt 1/11): 403 403 {"type":"error","error":{"type":"permission_error",
"message":"gateway policy: field safeguards is not allowed"}}
[WARN] [server-classifier] HTTP 403 with no cause Claude Code recognises, on a request that
carried the dangerous-tool-use beta header; sending it once more without that header
and the safeguards field, to learn whether they caused the refusal
[WARN] [server-classifier] a request was refused (HTTP 403) and answered when sent again
without the dangerous-tool-use beta header and the safeguards field. Until Claude Code
restarts, neither is sent and auto mode does not ask the server to check actions.
To keep the check, let the gateway pass that header and field, then restart Claude Code.
つまり 2.1.317 は原因のわからない 403 / 422 を受け取ると、dangerous-tool-use beta ヘッダーと safeguards フィールドを外して 1 回だけ再送します。成功すれば、再起動まではサーバーにチェックを依頼せず、ローカル分類器を使います。操作のチェックは引き続きローカルで行われます。サーバー側チェックに戻すには、ゲートウェイでこのヘッダーとフィールドを通してから Claude Code を再起動します。
apiKeyHelper 使用時の 403 は引き続き失敗
CHANGELOG には apiKeyHelper 使用時の 403 は変更なしとあり、検証でもそのとおりでした。2.1.317 は 11 回再試行し、約 4 分後にエラー終了しました。
# 2.1.317 + apiKeyHelper, gateway answers 403 to the safety check
[ERROR] API error (attempt 1/11): 403 ...
...
[ERROR] API error (attempt 10/11): 403 ...
Failed to authenticate. API Error: 403 gateway policy: field safeguards is not allowed
# exit 1 after 248.4 s
apiKeyHelper を使う場合は、ゲートウェイで safeguards を通すか、後述の CLAUDE_CODE_AUTO_MODE_SERVER=0 を使ってください。
2.1.317 へのアップデート
公式インストールドキュメントによると、ネイティブインストールはバックグラウンドで自動更新されます。npm、Homebrew、WinGet でのインストールは手動更新が必要です。npm では npm update -g ではなく npm install -g ...@latest を使います。
# native install (curl -fsSL https://claude.ai/install.sh | bash)
claude update
# npm install
npm install -g @anthropic-ai/claude-code@latest
# Homebrew (the claude-code cask follows the stable channel)
brew upgrade claude-code@latest
# Windows WinGet
winget upgrade Anthropic.ClaudeCode
# check
claude --version
# 2.1.317 (Claude Code)
claude --version が 2.1.317 以上なら OK です。Homebrew の claude-code cask は stable チャネルに従い、通常 latest より 1 週間ほど遅れます。今すぐ修正を入れるなら claude-code@latest を使ってください。セッション内で /status を実行すると、Auto mode server が Enabled かどうか確認できます。
ANTHROPIC_BASE_URL とキーの設定
まず aicodewith で API キーを作成します。
API Key を作成して Claude Code に接続 →
macOS / Linux:
export ANTHROPIC_BASE_URL="https://api.aicodewith.ai"
export ANTHROPIC_AUTH_TOKEN="YOUR_API_KEY"
claude --permission-mode auto
Windows PowerShell:
$env:ANTHROPIC_BASE_URL = "https://api.aicodewith.ai"
$env:ANTHROPIC_AUTH_TOKEN = "YOUR_API_KEY"
claude --permission-mode auto
常に有効にするなら ~/.claude/settings.json に書きます。permissions.defaultMode を auto にする設定はユーザー設定でのみ有効で、プロジェクトの .claude/settings.json では効きません(ドキュメントより)。
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.aicodewith.ai",
"ANTHROPIC_AUTH_TOKEN": "YOUR_API_KEY"
},
"permissions": {
"defaultMode": "auto"
}
}
ほかの書き方(Windows の永続環境変数、モデル設定)は「Claude Code をサードパーティ API に接続する方法」を参照してください。
auto mode を有効にする
- 起動時:
claude --permission-mode auto。 - セッション中:
Shift+Tabで切り替え、ステータスバーに⏵⏵ auto mode onと出れば auto mode です。 - 非対話(
claude -p):2.1.302 の CHANGELOG によると、サードパーティプロバイダー、テレメトリ無効、新規インストールでは権限モード未指定だとdefaultで始まるため、--permission-mode autoを明示します。 - ローカル分類器のモデルを変える:
CLAUDE_CODE_AUTO_MODE_MODEL(2.1.302 以降)。サーバー側チェックには影響しません。
まだアップデートできず、ゲートウェイが安全チェックを拒否する場合は、サーバー側チェックをオフにしてローカル分類器だけを使えます。
{SERVER0}
2.1.316 と模擬 403 / 422 ゲートウェイの組み合わせで検証し、どちらもタスクを完了しました。
よくあるエラー対照表
| 症状 | 原因 | 対処 |
|---|---|---|
| 毎ターン API Error: 403 ...、前に Failed to authenticate。manual モードなら動く | ゲートウェイが auto mode のサーバー側安全チェックを拒否 | 2.1.317 にアップデート、または CLAUDE_CODE_AUTO_MODE_SERVER=0 |
| 毎ターン API Error: 422 ...、メッセージに safeguards | ゲートウェイがボディを厳格に検証し、safeguards フィールドを拒否 | 同上、またはゲートウェイでフィールドを通す |
| apiKeyHelper 使用時の 403 | 2.1.317 でも挙動は変わらず、認証失敗として扱われる | ゲートウェイで safeguards と beta ヘッダーを通す、または CLAUDE_CODE_AUTO_MODE_SERVER=0 |
| 地域やネットワークのブロックによる 403 | 地域・ネットワークの制限 | 2.1.317 からはサインイン失敗ではなくブロックと説明される。ネットワークを変えるか、到達できるゲートウェイを使う |
| 操作が止まり、安全チェックが判定を返さない | サーバーがその操作の判定を返さなかった | 2.1.314 から blocked と誤報されない。2.1.317 からサブエージェントでも通知が出る。ドキュメントによると判定なしが 10 回続くとターンが止まる |
| manual モードでも毎ターン 403 / 401 | キーが無効、または Base URL の誤り | キーと ANTHROPIC_BASE_URL を確認。auto mode とは無関係 |
よくある質問
aicodewith を使っています。アップデートは必要ですか?
検証では 2.1.316 と 2.1.317 のどちらも当サイトの API で auto mode が正常に動いたので、この不具合には当たりません。2.1.317 にはほかの修正もあるので、通常どおりアップデートをおすすめします。
2.1.317 以降も auto mode は安全ですか?
チェックは続いています。省かれるのは「サーバーにチェックを依頼する」段階だけで、チェックが必要な操作はローカル分類器が判断します。ログでも Bash コマンドごとにローカルチェックの記録がありました。
なぜ 403 が「Failed to authenticate」と表示されるのですか?
旧バージョンは auto mode の安全チェックで受け取った 403 を認証失敗として扱っていました。キーが正しく、manual モードでは動き、auto mode のときだけ 403 になるなら、ほぼこの問題です。
この問題かどうかを確かめるには?
--debug-file を付けて一度実行し、ログで server-classifier と API error を検索します。エラーに safeguards が含まれる、または 2.1.317 が「sending it once more without that header and the safeguards field」と出力していれば、ゲートウェイが安全チェックを拒否しています。
Codex にも似た権限設定はありますか?
Codex はサンドボックスと承認ポリシーでコマンド実行を制御します。設定方法は「Codex のサンドボックスと /permissions の設定」を参照してください。



