メインコンテンツへスキップ

Claude Codeの403・503・529:発生元と直し方

同じ403や503でも、返したのが社内プロキシ、アカウント権限、中継サービスのどれかで直し方が変わります。529はAnthropic側の混雑で、利用上限ではありません。

LaoZhang AI Team公開29 分で読めます
目次
403はプロキシ・権限・WAF、503は中継サービス・ゲートウェイ、529はAnthropic側の容量不足と、Claude Codeのエラーごとに発生元を示すカバー画像

Claude CodeにAPI Error: 403や503が出ても、ステータスコードだけでは誰が返したのか分かりません。同じ403でも、社内プロキシが通信を止めたのか、Anthropicのアカウントに権限がないのか、間にあるゲートウェイの防御機能が弾いたのかで、直す場所がまったく違います。

判断に使うのは2つです。エラーの原文と、Claude Codeで/statusを実行したときにAnthropic base URLの行が出るかどうかです。

  • Anthropic base URLの行がない:リクエストはAnthropicに直接届いています。Amazon Bedrock、Google Cloud、Microsoft Foundryを使う設定なら、そのクラウドに届いています。
  • 行がある:そこに表示されたゲートウェイや中継サービスが最初に応答しています。503 No available accountsやNo available channel、no available serverは、この中継側のソフトウェアやロードバランサーが出す文言です。
  • Repeated 529 Overloaded errors:Anthropic側でそのモデルの処理能力が埋まっている状態で、あなたの利用上限ではありません。

以下は2026年9月29日時点のClaude Code公式ドキュメントと、各中継ソフトウェアのソースコード・公開されている報告にもとづいています。

最初の2分:/statusとエラー末尾で発生元を決める

設定をいじる前に、次の順で確認します。ここで発生元が決まれば、残りは該当する節だけ読めば足ります。

  1. エラーの全文をコピーします。request idが含まれていれば、報告のときにそのまま使います。
  2. Claude Codeで/statusを実行し、Statusタブを見ます。Anthropic base URLの行はゲートウェイのアドレスが設定されているときだけ表示されます。その下のAuth tokenかAPI keyの行は、使われている認証情報の変数名を示し、Login methodの行ならclaude.aiのログインが使われています。
  3. 5xxエラーなら、メッセージ末尾の一文を見ます。現行のClaude Codeでは、直結ならcheck https://status.claude.com、Bedrockなどのクラウド経由ならそのクラウドのステータスページ、ANTHROPIC_BASE_URLを設定していればcheck your inference gateway (ホスト名)のようにゲートウェイのホストを名指しします。
  4. API Error: 502 Bad Gatewayのように、コードの後ろにHTTPの標準的な名前やページタイトルだけが並ぶ場合は、プロキシやロードバランサー、ゲートウェイがHTMLのエラーページを返しています。Claude Code v2.1.281以降はこの形で表示されます。AnthropicのAPI自身のエラーは{"error":{"type":"...","message":"..."}}というJSONです。
  5. どの操作で出たかを確認します。インストール中、npm install、ログイン直後、会話中、Claudeが外部のWebページを読みに行ったとき、git操作のときでは、403を返しているサービスそのものが違います。

/statusのbase URL行の有無とエラー本文の形から、応答したのがAnthropic、ゲートウェイ・中継サービス、プロキシのどれかを判定する図

末尾の一文には注意点があります。Claude Code v2.1.137では、中継サービスが返した503 No available accountsにもcheck status.claude.comが付いていた報告があります(GitHub issue #57554など)。古い版では末尾が発生元の目印にならないので、/statusの結果を優先してください。

設定したはずのゲートウェイが/statusに出てこない場合は、変数がセッションに届いていません。シェルのexportと~/.claude/settings.jsonのenvの両方に同じ変数があるときは設定ファイル側が使われるので、古い値が残っていないかも見ます。設定の置き場所は「Claude Code API 設定:キー、settings.json、モデル、ゲートウェイの確認手順」にまとめています。

エラー表示から発生元を引く対応表

エラーの原文と/statusの結果から、該当する行を探してください。「最初の確認」で発生元が確定し、「次の行動」の相手が直せる人です。

見えているもの返している層最初の確認次の行動
ログイン後にAPI Error: 403 {"error":{"type":"forbidden","message":"Request not allowed"}}、base URL行なしAnthropicのアカウントPro/Maxの契約状態、Consoleのロール契約を有効にする。Consoleの管理者に「Claude Code」か「Developer」ロールを依頼
Claude Code access has not been granted for this accountClaude Enterpriseの組織設定自分のロールがCustomか組織のOwnerにClaude Codeを含むロールを依頼
インストールやcurlでの接続確認が403社内プロキシ・ネットワークフィルター、または非対応地域同じシェルでcurlを実行プロキシを設定する。フィルターならネットワーク管理者へ
端末では動くのにVS Codeの拡張だけ403拡張がプロキシ設定を受け取っていない拡張のプロセスに環境変数が渡っているかcode .で起動し直すか、設定ファイルのenvに書く
base URL行あり、403 ForbiddenのようなHTML本文、ゲートウェイのログに記録なしゲートウェイ前段のWAFやリバースプロキシ短いcurlは通るのに実セッションだけ失敗するかゲートウェイ管理者に/v1/messagesの本文検査の除外を依頼
Gateway refused the request · signing in again won't change this ...Claude apps gateway、またはその上流再ログインでは直らないゲートウェイ管理者にリクエストを調べてもらう
503 No available accountsアカウントプール型の中継サービスbase URL行のホスト中継事業者に連絡。時間をおいて再試行
503 No available channel for model X under group Ynew-apiを使う中継サービスエラー中のモデル名とグループ名その中継が提供するモデルに切り替えるか、事業者に連絡
503 No available provider foundClaude Code Hub管理画面のプロバイダー状態自前運用なら管理画面で修正、他人の運用なら管理者へ
503 no available serverゲートウェイ前段のロードバランサー(Traefikの文言)base URL行のホストゲートウェイ・中継の運営者へ。サービス停止中の可能性が高い
503 no healthy upstream途中のプロキシが上流に接続できないbase URL行の有無とstatus.claude.com行がなく障害が出ていれば待つ。行があればゲートウェイ側へ
Repeated 529 Overloaded errorsAnthropic側のモデル容量ステータスページ数分待つか/modelで別モデルへ
Claudeが外部URLを読むときの403読み込み先のWebサイトやCDNどのURLで失敗したか相手サイトの防御設定の問題。別のページや手元のファイルで代替
npm i -g @anthropic-ai/claude-codeが403npmレジストリ~/.npmrcのregistry社内レジストリ向けの設定を見直す

403:誰が拒否したかで直し方が変わる

403は「接続先には届いたが、その操作は許可されない」という応答です。つながらないエラーとは違い、どこかが意図して断っています。Claude APIの公式エラー一覧でも、403のpermission_errorは「APIキーに指定リソースを使う権限がない」状態として説明され、Claude Consoleの組織とワークスペースの設定を確認するよう案内されています。

ログイン直後のRequest not allowed:契約とロール

/statusにbase URL行がなく、ログインした直後から次のエラーが出る場合は、Anthropic側があなたのアカウントを通していません。

API Error: 403 {"error":{"type":"forbidden","message":"Request not allowed"}}

公式のトラブルシューティングが挙げる確認先は3つです。

  • Claude Pro/Maxで使っている場合:claude.ai/settingsでサブスクリプションが有効かを確認します。
  • Anthropic Console(APIキー)で使っている場合:アカウントに「Claude Code」または「Developer」ロールが付いているかを確認します。付与するのはConsoleの管理者で、場所はSettings → Membersです。
  • 社内プロキシ配下の場合:プロキシがAPIリクエストに干渉していることがあります。次の節を確認してください。

Claude Enterpriseでログイン画面にClaude Code access has not been granted for this account. Contact your administrator.と出る場合は、組織があなたのロールをCustomにしていて、割り当てられたカスタムロールのどれにもClaude Codeが含まれていません。Claude Code側の操作では直らないので、組織のOwnerにClaude Codeを含むロールの割り当てか、Userなどの標準ロールへの変更を頼み、変更後にclaudeを起動してログインし直します。

再ログインを試すなら/logoutしてから/loginで十分です。~/.claudeディレクトリごと削除する手順を見かけることがありますが、ここには設定、会話履歴、認証情報が入っています。消しても契約、ロール、プロキシ、地域は何も変わらず、設定だけが失われます。

社内ネットワークやプロキシが止めている

公式ドキュメントは、接続確認で返る403を「多くはプロキシかネットワークフィルターがホストをブロックしている、またはClaude Codeが提供されていない地域」と説明しています。Claude Codeを起動するのと同じシェルで確認します。

bash
# インストール元への接続(1行目が200なら到達)
curl -sI https://downloads.claude.ai/claude-code-releases/latest

# APIホストへの接続
curl -I https://api.anthropic.com

Windows PowerShellではcurlがInvoke-WebRequestの別名になっているため、curl.exe -I https://api.anthropic.comのようにcurl.exeを明示します。

ここで403が返るなら、Claude Codeより手前のネットワークが断っています。社内プロキシを通す必要がある環境では、起動前にプロキシの変数を設定します。

bash
export HTTPS_PROXY=http://proxy.example.com:8080
# 認証付きプロキシの場合
export HTTPS_PROXY=http://username:password@proxy.example.com:8080

Claude Codeはhttps_proxy、HTTPS_PROXY、http_proxy、HTTP_PROXYの順に最初に見つかったものを使い、除外先はNO_PROXYで指定します。SOCKSプロキシには対応していません。プロキシ自体がClaude関連のホストを禁止している場合は、手元の設定では直らないので、ネットワーク管理者に許可を依頼します。

curlは通るのにClaude Codeだけ失敗する場合は、echo $ANTHROPIC_BASE_URLと設定ファイルのenvブロックを確認します。以前使ったゲートウェイのアドレスが残っていると、モデルへのリクエストはapi.anthropic.comではなくそこへ送られます。403ではなくConnection refusedやECONNRESETが出ている場合は、「Claude Code の Unable to connect to API を直す:ECONNREFUSED、ECONNRESET、proxy の切り分け」の手順が近道です。

ターミナルでは動くのにVS Codeの拡張だけ403

ターミナルのClaude Codeは問題なく、VS Codeの拡張だけが403になるなら、拡張のプロセスがシェルの環境変数を受け取っていない可能性が高いです。Dockやスタートメニューから起動したVS Codeは、.zshrcなどで設定したプロキシの変数を引き継がないことがあります。公式ドキュメントも、ターミナルからcode .で起動して環境を引き継がせる方法を案内しています。

毎回そうしたくない場合の置き場所は2つです。

  • ~/.claude/settings.jsonのenvブロック:拡張とCLIで共有されるので、両方に同じプロキシやゲートウェイの設定が届きます。
  • 拡張の設定environmentVariables:拡張が起動するClaudeのプロセスだけに変数を渡します。CLIと共通の設定なら上のsettings.jsonを使うほうが管理しやすくなります。

Remote-SSHで接続先のマシンがインターネットに出られない場合に、ブラウザでの認証は終わったのに拡張が403を表示するという報告もあります(issue #21904、報告者は認証の後処理がリモート側からclaude.aiへ接続しようとしていると推測)。リモート側の外向き通信を確認してください。拡張が起動しない、ログインできないなど403以外の症状も含めるなら「Claude Code が VS Code で動かない時は、まず失敗している面を分ける」で症状ごとに分けています。

ゲートウェイ配下の403

/statusにbase URL行がある場合、403はまずゲートウェイ側を疑います。

社内で運用するゲートウェイの前にWAF(Webアプリケーションファイアウォール)やリバースプロキシがあると、403 ForbiddenのようなHTML本文の403が返り、ゲートウェイのログにはリクエストが届いた記録が残りません。Claude CodeのリクエストにはXML風のタグやソースコードが含まれ、クロスサイトスクリプティング対策の本文検査ルールに引っかかるためです。短いテスト用のcurlは通るのに実際のセッションだけ失敗する、というのがこのパターンの特徴です。公式ドキュメントの対処は、ゲートウェイの/v1/messagesパスを本文検査の対象から外すことで、AWS WAFならCrossSiteScripting_Bodyマネージドルール、nginxとModSecurityの組み合わせならOWASP CRSの該当ルールが対象です。

Claude apps gatewayでサインインしている場合は、次の表示になります。

Gateway refused the request · signing in again won't change this — check with your gateway administrator · API Error: 403 ...

文面のとおり、再ログインでは変わりません。ゲートウェイのアクセス制御ルールか、その上流の認可が拒否しているので、管理者に監査ログを調べてもらいます。v2.1.273より前は、同じ状況でPlease run /loginやFailed to authenticateと表示されていました。

外部の中継サービスでは、403 {"type":"forbidden","message":"This service is restricted to the official Claude Code client."}のような応答が報告されています。Anthropicのドキュメントにはない文言で、中継側が接続元のクライアントを判定して断っているものです。問い合わせ先はその中継サービスです。

APIの403ではないケース

403が出た場面によっては、Anthropic APIとは無関係です。

  • Claudeが外部のWebページを読みに行ったときの403:相手のWebサイトやCloudflareなどのCDNが、自動アクセスを拒否しています。Claude Codeの権限やプロキシを直しても変わりません。
  • npm i -g @anthropic-ai/claude-codeの403:~/.npmrcで社内レジストリを指定していて、そこに該当パッケージがない、または権限がない例があります。npm config get registryで参照先を確認します。
  • git操作やGitHub連携の403:GitHubのトークンやリポジトリ権限の問題で、確認先はGitHub側です。
  • Amazon Bedrock経由の403:AWS側の拒否です。IAMの権限や推論プロファイルの設定によって、サブエージェントの呼び出しだけが403になった事例も報告されています。確認先はAWSのアカウント管理者です。

地域による403

日本はAnthropicの対応国リストに入っているので、日本国内から公式に直結して使っている限り、地域が403の原因になることはほとんどありません。ただし、中国本土、ロシア、香港、マカオはリストにありません。出張先などからインストールページにApp unavailable in regionと表示されたり、公式直結で403が続いたりする場合、それは設定の問題ではなく提供地域の問題で、手元の設定では直りません。公式直結での再試行はそこでやめてください。

503:AnthropicのAPIは過負荷に503を使わない

Claude API(Messages API)の公式エラー一覧には、400、401、402、403、404、409、413、429、500、504、529が並んでおり、503はありません。過負荷は529のoverloaded_errorで表されます。Anthropicの設備が503を絶対に返さないという意味ではありませんが、下の文言が付いた503は、Anthropicではなく途中のソフトウェアが作ったものです。

文言ごとの意味

503 No available accountsは、Claudeのアカウントをまとめて貸し出すアカウントプール型の中継サービスが出します。例えばオープンソースのsub2apiでは、そのモデルを扱えるアカウントがレート制限や一時停止ですべて使えない状態か、グループにアカウントが1つもない状態でこの503を返します。グループにアカウントはあるが要求されたモデルに対応するものがない場合は、503ではなく404 model_not_foundになります。つまり503なら、中継側のアカウントが尽きているか空です。

API Error: 503 No available accounts: no available accounts. This is a server-side issue, usually temporary — try again in a moment. If it persists, check status.claude.com.

503 No available channel for model claude-opus-5 under group defaultのような文言は、中継ソフトウェアnew-apiの表示で、あなたのグループにそのモデルを流せる経路がないという意味です。この形の報告では、中継サービスにチャージした後でも同じエラーが出ていました。チャージではなく、その中継が扱っているモデルへの切り替えか、事業者へのモデル追加の依頼が必要です。

503 No available provider foundは、中継・プロキシ基盤のClaude Code Hubの表示です。同ツールのドキュメントでは、すべてのプロバイダーが無効、サーキットブレーカーがすべて開いている、グループ制限で一致するものがない、同時実行数の上限に達している、のいずれかが原因とされ、管理画面のプロバイダー管理で確認します。

503 no available serverは、リバースプロキシのTraefikが、転送先に健全なサーバーが1つもないときに返す本文そのものです。Claude Codeでこの文言が出たなら、base URLに設定したゲートウェイや中継サービスの前段にあるロードバランサーが、後ろのサービスが落ちているか再起動中だと判断している、と読むのが自然です。Anthropic側がTraefikを使っているという情報はありません。対処は時間をおくことと、運営者への連絡です。

503 no healthy upstreamは、Envoyなどのプロキシが上流に接続できないときの標準的な文言で、Anthropic直結の利用者からも障害時に多く報告されています。/statusにbase URL行がなく、status.claude.comに障害が出ていれば、Anthropic側の一時的な問題として待ちます。base URL行があるなら、先にゲートウェイ側を確認します。

503の各文言が、前段のロードバランサー・プロキシ、中継ソフトウェア、Anthropic APIのどこで出るかと、それぞれの連絡先をまとめた図

ゲートウェイを1トークンで直接試す

ゲートウェイ経由の503や403が、Claude Codeの設定の問題なのかゲートウェイの問題なのかは、Claude Codeを通さずに1トークンだけのリクエストを送ると分かります。変数はシェルにexportしておきます。

bash
curl -sS -w '\n%{http_code}\n' -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": "claude-sonnet-4-6", "max_tokens": 1, "messages": [{"role": "user", "content": "."}]}'

結果の読み方は次のとおりです。

  • {"id":"msg_で始まり"content":[...]を含むJSON:ゲートウェイに届き、認証も通っています。Claude Codeだけが失敗するなら、/statusで変数がセッションに届いているかを見直します。
  • 未知のモデルだというエラー:URLと認証情報は有効です。ゲートウェイが認証した後でモデル名を断っているだけなので、この確認には十分です。
  • 401:認証情報が拒否されています。ANTHROPIC_AUTH_TOKENとANTHROPIC_API_KEYを取り違えていないか確認します。キーをx-api-keyヘッダーで受け取るゲートウェイなら、Authorizationの行を-H "x-api-key: $ANTHROPIC_API_KEY"に替えます。
  • ここでも同じ503:ゲートウェイか中継サービス自体の問題です。Claude Code側の設定を変えても直りません。

529:Anthropic側の容量不足で、あなたの上限ではない

529はここまでと違い、発生元がはっきりしています。

API Error: Repeated 529 Overloaded errors. The API is at capacity — this is usually temporary. Try again in a moment. If it persists, check https://status.claude.com.

Claude Codeはこの表示を出す前に、既定で最大10回まで自動で再試行しています。529は全利用者ぶんの需要でモデルの処理能力が一時的に埋まっている状態で、利用上限でもなく、クォータも消費しません。ステータスページを確認し、数分待つか、/modelで別のモデルに切り替えます。容量はモデルごとに管理されているので、別のモデルなら作業を続けられることがあります。中継サービスを経由していても、中継を替えてAnthropic側の容量が増えるわけではありません。

フォールバックモデルの設定やCIでの扱いは「Claude Codeの529過負荷エラー:待つか切り替えるか」に、長い作業が途中で止まった後の再開は「Claude Code の 500 と 529:障害後に重複なしで安全に再開する」にまとめています。500が出ている場合は「Claude Code の API Error 500 を直す方法」を参照してください。

連絡先と、報告に添えるもの

発生元が決まれば、連絡する相手も決まります。

  • Anthropic直結でステータスページに障害がないのに5xxが続く:Claude Codeで/feedbackを実行すると、リクエストの詳細付きでAnthropicに報告できます。
  • Request not allowedやロールの問題:個人契約ならclaude.aiのサブスクリプション、組織ならConsoleやClaude Enterpriseの管理者です。
  • 社内プロキシやWAF:ネットワーク管理者、ゲートウェイ管理者です。
  • No available accounts、No available channel、no available server:その中継サービスの運営者です。オープンソースのnew-apiも、第三者が運営する中継サイトの問題はその運営者に問い合わせるよう、issueテンプレートで求めています。
  • Bedrock経由:AWSアカウントの管理者です。

報告には次を添えると、相手が調べる時間が短くなります。

  • エラーの全文。request idが含まれていればそれも含めます
  • 発生した日時とタイムゾーン
  • claude --versionの出力
  • /statusのAnthropic base URL行と、認証情報の種類を示す行。トークンやキーそのものは貼らないでください
  • 使ったモデル名と、CLIかVS Codeの拡張か
  • 上のcurl確認の結果とHTTPステータス

よくある質問

503が出たらAnthropicの障害ですか?

文言によります。Claude APIの公式エラー一覧に503はなく、過負荷は529で表されます。No available accountsやno available serverなどの文言が付いた503は、/statusのbase URL行に出ているゲートウェイや中継サービスが返しています。base URL行がなく、status.claude.comに障害が出ているときのno healthy upstreamだけは、Anthropic側の一時的な問題として待つのが妥当です。

403は地域制限のせいですか?

日本から公式に直結しているなら、ほとんどの場合は違います。日本はAnthropicの対応国です。まず契約やロール、社内プロキシ、VS Codeへの環境変数の受け渡しを確認してください。中国本土、ロシア、香港、マカオのように対応国リストにない地域からの403は、設定では直りません。

~/.claudeを削除すれば403は直りますか?

直りません。~/.claudeには設定、会話履歴、認証情報が入っていて、削除しても契約、ロール、プロキシ、地域は変わりません。認証をやり直したいなら/logoutしてから/loginしてください。

中継サービスにチャージしたのに503が出るのはなぜですか?

残高ではなく、中継側の供給の問題だからです。No available channel for model ... under group ...なら、そのグループにそのモデルを流す経路がありません。No available accountsなら、中継側のアカウントが尽きているか空です。エラー中のモデル名を確認し、その中継が扱うモデルに切り替えるか、運営者に連絡してください。

さらに読む: Claude Code