Tool Integrations2026年9月22日Flatkey Team

Claude Code ANTHROPIC_AUTH_TOKEN エラー: 完全な設定修正

Claude Code の ANTHROPIC_AUTH_TOKEN、ANTHROPIC_API_KEY、ANTHROPIC_BASE_URL、/status、VS Code、GitHub Actions、ゲートウェイ 401 エラーを網羅した完全なトラブルシューティング手順書です。

Claude Code ANTHROPIC_AUTH_TOKEN エラー: 完全な設定修正

Claude Code ANTHROPIC_AUTH_TOKEN エラー: 完全な設定修正 が検索語の場合、修正は通常ひとつの問いから始まります。Claude Code は、ゲートウェイが実際に読み取るヘッダーに認証情報を送っているでしょうか?

Claude Code のゲートウェイルーティングでは、ANTHROPIC_AUTH_TOKENAuthorization: Bearer ... を送信します。ANTHROPIC_API_KEYx-api-key: ... を送信します。値自体が有効でも、誤った変数に入ったトークンは、無効なキー、古いログイン、または壊れたゲートウェイのように見えることがあります。

ANTHROPIC_AUTH_TOKENANTHROPIC_BASE_URL、Claude Code の設定ファイル、VS Code 拡張機能、または CI ワークフローを設定した後に Claude Code が失敗する場合は、この手順書を使用してください。

すぐにできる修正

マシン上のすべての設定ファイルを編集する前に、最小限の診断から始めてください。

  1. 認証情報の変数を 1 つ選びます。
  2. ゲートウェイのベース URL とその認証情報を、同じシェルでエクスポートします。
  3. $ANTHROPIC_BASE_URL/v1/messages に対して 1 トークンの curl リクエストを実行します。
  4. その同じシェルから Claude Code を起動します。
  5. /status を実行し、Anthropic base URL と期待する認証情報のソースの両方が表示されることを確認します。
  6. curl が成功しても Claude Code がまだログインを求める場合は、認証情報を Claude Code が初回セットアップの前に読み取る場所、たとえば ~/.claude/settings.json、シェルの export、または管理された設定に移します。

Bearer トークンのゲートウェイの場合:

export ANTHROPIC_BASE_URL="https://llm-gateway.example.com"
export ANTHROPIC_AUTH_TOKEN="REPLACE_WITH_GATEWAY_TOKEN"

curl -X POST "$ANTHROPIC_BASE_URL/v1/messages" \
  -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "replace-with-a-gateway-supported-claude-model",
    "max_tokens": 1,
    "messages": [{"role": "user", "content": "."}]
  }'

x-api-key ゲートウェイの場合:

export ANTHROPIC_BASE_URL="https://llm-gateway.example.com"
export ANTHROPIC_API_KEY="REPLACE_WITH_GATEWAY_KEY"

curl -X POST "$ANTHROPIC_BASE_URL/v1/messages" \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "replace-with-a-gateway-supported-claude-model",
    "max_tokens": 1,
    "messages": [{"role": "user", "content": "."}]
  }'

メッセージ ID と content を含む JSON 応答は、URL と認証情報が機能していることを意味します。401 は、ゲートウェイが認証情報を拒否したか、読み取らないヘッダーで受け取ったことを意味します。

Claude Code ANTHROPIC_AUTH_TOKEN エラー: 完全な設定修正 チェックリスト

これを作業用の診断表として使用してください。アクティブな変数、ヘッダー、および設定の優先順位が分かるまで、キーをローテーションしないでください。

症状最も可能性の高い原因修正方法
401 invalid or unrecognized token認証情報が失効している、 টাইポがある、または誤ったヘッダーで送信されているゲートウェイが bearer 認証を期待している場合は ANTHROPIC_AUTH_TOKEN を使用します。x-api-key を期待している場合は ANTHROPIC_API_KEY を使用します。ヘッダーが正しいことを確認してから再生成してください。
Startup warning says two credential sources are activeゲートウェイの認証情報と、保存済みの Claude ログインまたは API キーの両方が有効になっているどちらか一方の経路を選びます。保存済みログインを使うにはゲートウェイ変数を解除し、ゲートウェイ認証情報のみを使うには /logout を実行します。
/status has no Anthropic base URL lineANTHROPIC_BASE_URL が Claude Code プロセスまで届いていない同じシェルから claude を起動する、変数を ~/.claude/settings.json に移す、または実際に使用している設定面を構成します。
Curl works, Claude Code asks you to log inCLI には到達可能な base URL はあるが、初回セットアップ前に利用できる認証情報がないANTHROPIC_AUTH_TOKEN をシェルの export、ユーザー設定、または Claude Code がウィザード前に読む管理対象設定に入れます。
ANTHROPIC_API_KEY is set but ignored対話型の Claude Code ではカスタム API キーに一度だけ承認が必要、または以前のキーが拒否された/configUse custom API key を有効にします。
Empty or malformed response with HTTP 200ゲートウェイまたはプロキシが HTML、ログインページ、または別の非 API 応答を返したcurl リクエストを実行し、Claude API の JSON ではない応答を返しているルートを修正します。
DNS, firewall, or connection refused errorsANTHROPIC_BASE_URL で到達可能な応答がないゲートウェイホストへの DNS、VPN、プロキシ、およびファイアウォールのアクセスを確認します。
400 names context_management, Extra inputs are not permitted, or tool schema fieldsゲートウェイが Anthropic 形式の Claude Code リクエストを、Claude Code が送信するフィールドを拒否する上流に転送しているフォワード互換フィールドを正しく処理する、プロバイダー固有のルートを使用する、または適切な場合は一時的に CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 を設定します。
400 names thinking or adaptive上流のモデルビルドが adaptive reasoning を受け付けない上流をアップグレードするか、対応する Claude 4.6 のケースでは、文書化された CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1 の回避策を使用します。
/fast fails while inference worksFast mode のチェックが、ゲートウェイ URL に従うのではなく Anthropic に直接送られることがあるこれをメッセージルーティングとは別の問題として扱います。直接チェックを allowlist するか、適用可能な場合は文書化された skip 変数を使用します。
Certificate errors while curl worksClaude Code のランタイムが、curl とは異なる CA バンドルを信頼しているNODE_EXTRA_CA_CERTS を社内 CA バンドルのパスに設定します。

ANTHROPIC_AUTH_TOKEN または ANTHROPIC_API_KEY を選ぶ

ANTHROPIC_AUTH_TOKEN は bearer トークン用です。Claude Code はこれを次のように送信します:

Authorization: Bearer <token>

ANTHROPIC_API_KEY は API キー用です。Claude Code はこれを次のように送信します:

x-api-key: <key>

ゲートウェイチームが「token」または「Authorization header」しか言わない場合は、まず ANTHROPIC_AUTH_TOKEN から試してください。「API key」または「x-api-key」と言う場合は、ANTHROPIC_API_KEY を使ってください。推測して 401 を受け取った場合は、キーをローテーションする前に変数を切り替えてください。

トラブルシューティング中は両方を設定しないでください。そうしないと、Claude Code ANTHROPIC_AUTH_TOKEN エラー: 完全な設定修正 が認証の問題から認証優先順位の問題へと変わってしまいます。

Claude Code が実際に読む場所に変数を置く

シェルの export は、解除しやすいため最初のテストに適しています:

export ANTHROPIC_BASE_URL="https://llm-gateway.example.com"
export ANTHROPIC_AUTH_TOKEN="REPLACE_WITH_GATEWAY_TOKEN"
claude

これらは、そのターミナルセッションと、そこから起動されたプログラムにのみ適用されます。VS Code、デスクトップアプリ、または別の場所から起動したバックグラウンドエージェントを開いた場合、その export は見えないことがあります。

永続的なユーザーレベルの CLI 設定には、~/.claude/settings.json を使用します:

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://llm-gateway.example.com",
    "ANTHROPIC_AUTH_TOKEN": "REPLACE_WITH_GATEWAY_TOKEN"
  }
}

1 つのプロジェクトだけで使う場合は、.claude/settings.local.json を使用し、クレデンシャルを追加する前に必ず gitignore に含めてください。.claude/settings.json はリポジトリと共有するためのものなので、そこにクレデンシャルを置かないでください。

シェルの export と設定ファイルの env ブロックが同じ変数を設定している場合、Claude Code は設定ファイルの値を使用します。だからこそ、/statusecho $ANTHROPIC_AUTH_TOKEN より信頼できる情報源なのです。

VS Code 拡張機能を修正する

Claude Code の VS Code 拡張機能には独自の起動チェックがあります。VS Code のユーザー設定で claudeCode.environmentVariables の下にゲートウェイ変数を設定してください:

{
  "claudeCode.environmentVariables": [
    { "name": "ANTHROPIC_BASE_URL", "value": "https://llm-gateway.example.com" },
    { "name": "ANTHROPIC_AUTH_TOKEN", "value": "REPLACE_WITH_GATEWAY_TOKEN" }
  ]
}

VS Code のコマンド Preferences: Open User Settings (JSON) を使用します。その後、拡張機能セッションを再起動して /status を実行してください。拡張機能がまだログインを促す場合は、独自のログインチェックでクレデンシャルを認識できていません。

GitHub Actions を修正する

Claude Code GitHub Actions は、ワークフローの env ブロックから ANTHROPIC_BASE_URL を読み取ります。x-api-key ゲートウェイの場合は、アクション入力としてゲートウェイキーを渡します:

env:
  ANTHROPIC_BASE_URL: https://llm-gateway.example.com

steps:
  - uses: anthropics/claude-code-action@v1
    with:
      anthropic_api_key: ${{ secrets.GATEWAY_API_KEY }}

bearer トークンのゲートウェイでは、アクションの起動チェックを満たすために anthropic_api_key がまだ必要です。一方、ANTHROPIC_AUTH_TOKEN は Claude Code が Authorization: Bearer として送信する値です:

env:
  ANTHROPIC_BASE_URL: https://llm-gateway.example.com
  ANTHROPIC_AUTH_TOKEN: ${{ secrets.GATEWAY_API_KEY }}

steps:
  - uses: anthropics/claude-code-action@v1
    with:
      anthropic_api_key: ${{ secrets.GATEWAY_API_KEY }}

これらの値は GitHub Secrets に保持してください。ゲートウェイの認証情報をワークフローのログ、issue のコメント、またはコミット済みファイルに貼り付けないでください。

/status を真偽確認として使う

設定を変更した後は、次を実行します:

/status

Anthropic 形式のゲートウェイでは、Status タブに次の内容が表示されるはずです:

Anthropic base URL: https://llm-gateway.example.com
Auth token: ANTHROPIC_AUTH_TOKEN

または:

Anthropic base URL: https://llm-gateway.example.com
API key: ANTHROPIC_API_KEY

base URL の行が表示されない場合、ANTHROPIC_BASE_URL がセッションに届いていません。認証情報のソースが保存済みログインである場合、Claude Code はゲートウェイの認証情報を使用していません。両方とも正しく見えるのにメッセージがまだ失敗する場合、問題はゲートウェイルーティング、上流互換性、プロキシの挙動、または証明書の信頼にある可能性が高くなります。

Claude Code のゲートウェイルーティングに関する Flatkey の注意事項

Flatkey は 2 つの異なる Claude Code ワークフローで役立ち、その違いが重要です。

プロジェクトまたはエージェントスキルから OpenAI 互換のモデル呼び出しを行う場合、Flatkey の base URL は次のとおりです:

https://router.flatkey.ai/v1

Claude Code 自身のゲートウェイ経路では、Anthropic Messages 形式のゲートウェイ設定に従い、ゲートウェイ側の Claude Code 指示で明示的に指示されていない限り、ANTHROPIC_BASE_URL/v1 を追加しないでください。一般的なプロバイダーパターンは次のとおりです:

export ANTHROPIC_BASE_URL="https://router.flatkey.ai"
export ANTHROPIC_API_KEY="$FLATKEY_API_KEY"

その後、/status を実行し、短いプロンプトを送信して、ゲートウェイの台帳またはログを確認します。Claude Code SKILL.md setup はこの経路とは分けてください。スキルは、リポジトリから Flatkey 対応のモデルやツールを Claude Code が呼び出す方法を教えるものであり、ゲートウェイルーティングは Claude Code が自身の Claude 系トラフィックをどこへ送るかを制御します。

プロバイダー間でエージェントトラフィックを標準化している場合は、この記事を Claude API proxy vs multi-model routerFlatkey API quickstart ガイドと組み合わせてください。

トークンが本当の問題ではない場合のゲートウェイ運用者チェック

一部の Claude Code ANTHROPIC_AUTH_TOKEN Errors: Complete Configuration Fixes の検索は、最初はローカル設定の問題として始まり、最終的にゲートウェイに行き着きます。1 トークンの curl が認証に成功し、/status が正しく見える場合は、次のゲートウェイ側の条件を確認してください:

ゲートウェイ確認重要な理由
/v1/messages で Anthropic Messages 形式を提供するANTHROPIC_BASE_URL により、Claude Code はゲートウェイを Anthropic 形式のエンドポイントとして扱います。
anthropic-versionanthropic-beta をそのまま転送するClaude Code の機能はリリースごとに変わるため、静的な許可リストでは後続のリクエストが壊れることがあります。
ストリーミングと keep-alive の挙動を維持するストリームのバイト列をバッファリングしたり削除したりすると、Claude Code が停止することがあります。
エラーボディを変更せずに転送するClaude Code は一部の回復経路で上流のエラー文言を使用します。
HTTP 200 で HTML を返さないClaude Code はブラウザのログインページではなく、Claude API の JSON または event-stream のレスポンスを期待します。
リクエスト本文の WAF ルールから /v1/messages を除外するClaude Code のプロンプトには、XML 風のタグや汎用の本文フィルタに引っかかるソースコードが含まれることがあります。
有用な retry ヘッダーを返すretry-afterx-should-retry は再試行動作に影響します。

ゲートウェイの前段にあるプロバイダーが Anthropic Messages の完全なリクエスト形式を受け付けない場合は、ANTHROPIC_BASE_URL の代わりにプロバイダー固有の変数を使用するか、ゲートウェイ内でスキーマを変換してください。フィールドをむやみに削除しないでください。それは 1 つの見えるエラーを、後で発生する機能障害に置き換えるだけです。

コピー可能なデバッグ記録

問題を同僚やゲートウェイ運用担当者に渡す際は、次の記録を使用してください:

claude_code_auth_debug:
  date_checked: 2026-09-22
  surface: cli # cli | vscode | github_actions | agent_sdk | desktop
  claude_code_version: ""
  expected_gateway_base_url: "https://llm-gateway.example.com"
  variable_used: "ANTHROPIC_AUTH_TOKEN"
  expected_header: "Authorization: Bearer"
  status_tab_base_url_seen: false
  status_tab_credential_source: ""
  curl_status_code: ""
  curl_response_shape: "json_message | 401 | html_200 | dns_error | tls_error | other"
  settings_files_checked:
    - "~/.claude/settings.json"
    - ".claude/settings.local.json"
    - ".claude/settings.json"
  shell_started_claude: false
  saved_login_present: unknown
  gateway_logs_received_request: unknown
  suspected_fix: ""

この記録によって、Claude Code がどこから設定を読み込んだか、どのヘッダーを送信したか、ゲートウェイが何を返したか、という 3 つを切り分けて調査できます。

よくある質問

ANTHROPIC_AUTH_TOKENANTHROPIC_API_KEY のどちらを使うべきですか?

ゲートウェイが bearer トークンまたは Authorization ヘッダーを期待する場合は ANTHROPIC_AUTH_TOKEN を使用します。ゲートウェイが x-api-key を期待する場合は ANTHROPIC_API_KEY を使用します。わからない場合は、まず ANTHROPIC_AUTH_TOKEN で試し、curl リクエストで確認し、401 を受け取ったら切り替えてください。

なぜ /status に自分の base URL が表示されないのですか?

ANTHROPIC_BASE_URL が Claude Code のプロセスに届いていません。同じシェルから claude を起動するか、値を正しい設定ファイルへ移すか、VS Code の設定や GitHub Actions の env など、使用している面に応じて設定してください。

curl は動くのに、なぜ Claude Code はまだログインを求めるのですか?

ベース URL には到達できますが、Claude Code は必要な時点で利用可能な資格情報を持っていません。ANTHROPIC_AUTH_TOKEN か正しい資格情報変数を、シェルの export、ユーザー設定、または Claude Code が初回セットアップ前に読み込む管理設定に入れてください。

.claude/settings.json にトークンを入れてもよいですか?

.claude/settings.json は共有プロジェクトファイルなので、そこにシークレットを入れないでください。代わりに ~/.claude/settings.json.claude/settings.local.json、管理設定、シークレットマネージャー、または CI シークレットを使用してください。

ANTHROPIC_AUTH_TOKEN によって Claude Code は Claude 以外のモデルにルーティングされますか?

いいえ。これは、Claude Code が設定された Anthropic 形式のゲートウェイに対して認証する方法を変更するだけです。ゲートウェイは独自の実装に従ってリクエストをルーティングまたはブリッジする場合がありますが、Claude Code は引き続き ANTHROPIC_BASE_URL のパスで Claude API の形を期待しています。

最も安全な最終確認は何ですか?

単一トークンの curl リクエストを実行し、設定済みの環境から Claude Code を起動して、/status を実行し、短いプロンプトを送信して、ゲートウェイの台帳またはログにリクエストが表示されることを確認します。この 4 段階のチェックが、Claude Code ANTHROPIC_AUTH_TOKEN エラー: 完全な設定修正 の裏にある持続的な修正です。

確認したソース

  • Anthropic Claude Code docs: Connect Claude Code to an LLM gateway, accessed 2026-09-22.
  • Anthropic Claude Code docs: Settings files and precedence, accessed 2026-09-22.
  • Anthropic Claude Code docs: Claude Code gateway compatibility guide, accessed 2026-09-22.
  • Claude Help Center: Manage API key environment variables in Claude Code, accessed 2026-09-22.
  • Flatkey public SKILL.md, accessed 2026-09-22.
  • Flatkey knowledge base: Product Overview, Marketing Strategy, Brand Voice.