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

Claude Code の Unable to connect to API を直す:ECONNREFUSED、ECONNRESET、proxy の切り分け

9 分で読めますClaude Code

Claude Code を起動した shell から API host を確認し、network、proxy、CA、実行環境、gateway のうち失敗した経路だけを修正します。

Claude Code の API 接続エラーを status、network、proxy、certificate、gateway に分ける診断経路

Unable to connect to API は、Claude Code が現在の API route との TCP 接続を完了できなかったことを示します。API が 401429500529 を返した状態とは別です。まず現在の Claude Status を確認し、Claude Code を起動したのと同じ shell で次を実行してください。

bash
curl -I https://api.anthropic.com

curl も接続できなければ、その環境の DNS、firewall、VPN、proxy、TLS を調べます。curl は HTTP response を受け取れるのに Claude Code だけ失敗する場合は、/status、proxy/CA 変数、WSL や macOS、Docker、ANTHROPIC_BASE_URL が選ぶ実際の host を確認します。

表示される suffix絞り込める範囲最初の確認
ECONNREFUSED接続先または local proxy が接続を拒否実際の endpoint と proxy address
ECONNRESET確立済みの接続が VPN、proxy、network device、remote side により切断別の信頼できる network で 1 回比較
ETIMEDOUT制限時間内に接続経路が完成しなかったDNS、firewall、proxy、route latency
fetch failedAPI response を得る前の network layer failure次の error line と同一 shell test
certificate / self-signed certificateTLS inspection または corporate CA の不足承認済み CA bundle の設定
HTTP status と JSON bodyAPI または provider まで到達済み接続分岐を離れ、status ごとに処理

再インストール、Key の変更、VPN の切り替え、DNS の変更、model の変更を同時に行わないでください。偶然直っても、再発時に原因を説明できません。

本当に接続エラーかを確定する

curl と Claude Code の結果から原因を分ける matrix

Anthropic の Claude Code error reference では、Unable to connect to APIECONNREFUSEDECONNRESETETIMEDOUTfetch failed、network/proxy を含む timeout が network error に分類されています。重要なのは HTTP response の有無です。

  • status code、response body、request ID がない:接続経路を調べる。
  • 401 または invalid key が返る:network は API layer に到達しているため、authentication を調べる。
  • 429500529 が返る:API または設定中の provider が応答しているため、個別の status を処理する。
  • Connection closed mid-response が出る:streaming は開始済みです。完了した block を残し、最後の完全な位置から続けます。

Claude Code は一時的な connection failure や server error を自動で再試行します。最終的なエラーが terminal に出た時点で、短時間の自動回復では解消しなかった可能性が高い状態です。同じ条件で Enter を繰り返しても、診断情報は増えません。

Claude Code を起動した shell で baseline を取る

browser、WSL、SSH、VS Code Remote、container は、それぞれ異なる DNS、proxy、certificate store を使う場合があります。browser で claude.ai が開くことは、claude process が api.anthropic.com に到達できる証明ではありません。

host への接続と route 関連の変数だけを確認します。

bash
curl -I https://api.anthropic.com env | grep -Ei '^(ANTHROPIC_BASE_URL|ANTHROPIC_API_KEY|HTTP_PROXY|HTTPS_PROXY|NO_PROXY|NODE_EXTRA_CA_CERTS)='

API key や proxy password が出る場合は、結果を issue やチャットへ貼らないでください。必要なのは、変数が存在するか、どの host、proxy、certificate file を選んでいるかだけです。

curlClaude Code次に見る場所
host を resolve できない失敗DNS または WSL resolver
port 443 が timeout失敗Firewall、VPN、proxy、outbound route
certificate validation error失敗TLS inspection と CA trust
任意の HTTP response を受け取る接続エラーClaude Code の process environment、scope、gateway
response を受け取る401/429/500/529純粋な connection error ではない

curl -I の成功は basic reachability を確認するだけです。account、full request、model、gateway compatibility まで確認したことにはなりません。

curl も失敗する場合は network path を直す

status page が green でも、すべての地域、ISP、企業 network が正常とは限りません。そのうえで、1 つの条件だけを変えます。

  1. mobile hotspot や家庭 network など、別の信頼できる回線で同じ curl を 1 回実行する。
  2. VPN が active なら、切断後に 1 回だけ比較する。組織で VPN が必須なら、policy を迂回せず network team に allowlist を確認してもらう。
  3. 実際に使用する API host と公式の network access requirements が firewall で許可されているか確認する。
  4. Linux/WSL では /etc/resolv.conf の nameserver が到達可能か確認する。Windows 側の browser が正常でも WSL resolver は壊れます。
  5. DNS は成功するのに 443 が timeout するなら、credential ではなく firewall、router、proxy、outbound route を調べる。

ECONNREFUSED は、実際の host または local proxy port が接続を拒否したときに起きやすい症状です。ANTHROPIC_BASE_URL が別の host を選んでいないか確認します。ECONNRESET は一度つながった connection が切られた状態なので、VPN、TLS inspection、network quality、long-lived connection policy が有力です。

Corporate proxy と custom CA を正しく設定する

Corporate proxy と custom CA を通る Claude Code の trust path

Claude Code は起動時に標準の proxy 変数を読み取ります。

bash
export HTTPS_PROXY=https://proxy.example.com:8080 export NO_PROXY=".example.internal" claude

scheme、host、port は組織から指定された値を使います。Claude Code は SOCKS proxy をサポートしていません。proxy が TLS inspection を行う場合は、承認された CA bundle を設定します。

bash
export NODE_EXTRA_CA_CERTS=/path/to/corporate-ca.pem claude

NODE_TLS_REJECT_UNAUTHORIZED=0 は certificate verification を無効にするため使わないでください。proxy credential を repository の script に保存するのも避けます。settings scope と CA store の違いは公式の enterprise network configuration で確認できます。

Claude Code 起動後に export した変数は、実行中の process には反映されません。変更後は再起動します。Desktop-managed session、cloud session、background supervisor では shell variable が有効 scope でない場合があるため、/status と debug log で確認します。

curl は成功し Claude Code だけ失敗する場合

Claude Code 内で /status を実行し、active credential、provider、proxy、endpoint が意図どおりか確認します。

  • Unexpected API keyANTHROPIC_API_KEY があると、subscription login ではなく API-key route を選ぶ場合があります。secret の値は表示しないでください。
  • Unexpected gatewayANTHROPIC_BASE_URL は destination を変更します。official API と third-party relay を同じ障害として扱わないでください。
  • WSL / remote IDE:host terminal、WSL、実際の VS Code Remote shell で同じ curl を実行し、DNS、proxy、CA の差を確認します。
  • macOS の古い VPN route:切断・削除済みの VPN が utun interface や network extension を残すことがあります。System Settings で確認し、不明な route を無作為に削除しないでください。
  • Docker Desktop:container runtime が outbound traffic に影響する場合があります。作業に安全なら、停止した状態で 1 回だけ比較します。
  • Background process:supervisor が別 shell の古い環境を引き継いでいる場合は、supported user settings または managed settings に network variable を置きます。

route の優先順位が不明なら、先に Claude Code API configuration で authentication と provider を整理します。

小さな request で復旧を確認する

1 つ変更したら Claude Code を再起動し、機密情報を含まない短い request を送ります。次の 3 点がそろえば復旧です。

  1. 同じ shell が official host または承認済み gateway から HTTP response を受け取る。
  2. /status が期待した authentication と route を示す。
  3. 新しい request が同じ connection error なしで完了する。

HTTP status に変わった場合、transport route は前進しています。Claude Code API Error 500Claude API 529 overloadedClaude API rate limit の該当ページへ移動してください。server response があるのに network 設定を切り替え続ける必要はありません。

Support に渡す情報を最小化する

日時と timezone、OS、Claude Code version、正確な error suffix、route type、curl -I の結果、status page の観察、network または proxy を 1 つ変えた結果を記録します。ANTHROPIC_BASE_URL の host は、private address でない場合だけ共有します。

API key、OAuth token、proxy password、private prompt、customer data、完全な environment dump は送らないでください。official route は Help Center または利用可能な /feedback、corporate network や gateway はその owner へ、同じ redacted packet を送ります。

判断は 3 つです。同じ shell の curl も失敗するなら host までの経路、curl は成功して Claude Code だけ失敗するなら process environment、HTTP error が返るなら connection ではなく response を直します。

#Claude Code#Unable to connect to API#ECONNRESET#Proxy#トラブルシューティング
Share: