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

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

- URL: https://blog.laozhang.ai/ja/posts/claude-code-403-503-529-errors
- Published: 2026-09-29
- Updated: 2026-09-29
- Author: LaoZhang AI Team (https://blog.laozhang.ai/ja/about)
- Category: Claude Code
- Tags: Claude Code, 403, 503, 529, プロキシ, ゲートウェイ, トラブルシューティング

---
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、ゲートウェイ・中継サービス、プロキシのどれかを判定する図](https://blog.laozhang.ai/posts/ja/claude-code-403-503-529-errors/img/first-two-minutes.webp)

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

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

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

エラーの原文と`/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 account` | Claude 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 Y` | new-apiを使う中継サービス | エラー中のモデル名とグループ名 | その中継が提供するモデルに切り替えるか、事業者に連絡 |
| `503 No available provider found` | Claude Code Hub | 管理画面のプロバイダー状態 | 自前運用なら管理画面で修正、他人の運用なら管理者へ |
| `503 no available server` | ゲートウェイ前段のロードバランサー（Traefikの文言） | base URL行のホスト | ゲートウェイ・中継の運営者へ。サービス停止中の可能性が高い |
| `503 no healthy upstream` | 途中のプロキシが上流に接続できない | base URL行の有無と[status.claude.com](https://status.claude.com) | 行がなく障害が出ていれば待つ。行があればゲートウェイ側へ |
| `Repeated 529 Overloaded errors` | Anthropic側のモデル容量 | ステータスページ | 数分待つか`/model`で別モデルへ |
| Claudeが外部URLを読むときの403 | 読み込み先のWebサイトやCDN | どのURLで失敗したか | 相手サイトの防御設定の問題。別のページや手元のファイルで代替 |
| `npm i -g @anthropic-ai/claude-code`が403 | npmレジストリ | `~/.npmrc`の`registry` | 社内レジストリ向けの設定を見直す |

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

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

### ログイン直後の`Request not allowed`：契約とロール

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

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

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

- Claude Pro/Maxで使っている場合：[claude.ai/settings](https://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 の切り分け](https://blog.laozhang.ai/ja/posts/claude-api-error-connection-error)」の手順が近道です。

### ターミナルでは動くのに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](https://github.com/anthropics/claude-code/issues/21904)、報告者は認証の後処理がリモート側からclaude.aiへ接続しようとしていると推測）。リモート側の外向き通信を確認してください。拡張が起動しない、ログインできないなど403以外の症状も含めるなら「[Claude Code が VS Code で動かない時は、まず失敗している面を分ける](https://blog.laozhang.ai/ja/posts/claude-not-working-in-vscode)」で症状ごとに分けています。

### ゲートウェイ配下の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でサインインしている場合は、次の表示になります。

```text
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なら、中継側のアカウントが尽きているか空です。

```text
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](https://status.claude.com)に障害が出ていれば、Anthropic側の一時的な問題として待ちます。base URL行があるなら、先にゲートウェイ側を確認します。

![503の各文言が、前段のロードバランサー・プロキシ、中継ソフトウェア、Anthropic APIのどこで出るかと、それぞれの連絡先をまとめた図](https://blog.laozhang.ai/posts/ja/claude-code-403-503-529-errors/img/503-message-map.webp)

### ゲートウェイを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はここまでと違い、発生元がはっきりしています。

```text
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過負荷エラー：待つか切り替えるか](https://blog.laozhang.ai/ja/posts/claude-code-overloaded-error)」に、長い作業が途中で止まった後の再開は「[Claude Code の 500 と 529：障害後に重複なしで安全に再開する](https://blog.laozhang.ai/ja/posts/claude-code-500-529-rate-limit)」にまとめています。500が出ている場合は「[Claude Code の API Error 500 を直す方法](https://blog.laozhang.ai/ja/posts/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`なら、中継側のアカウントが尽きているか空です。エラー中のモデル名を確認し、その中継が扱うモデルに切り替えるか、運営者に連絡してください。
