エラーの見え方

Claude Code のエラーリファレンスによると、メッセージは「API Error: Repeated 529 Overloaded errors. The API is at capacity — this is usually temporary. Try again in a moment.」で、続いて Anthropic のステータスページを案内します。この最後の一文はプロバイダーによって変わるとドキュメントは説明しています。Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry を使っている場合はそのプロバイダーのステータスページが示され、独自のゲートウェイを設定している場合はゲートウェイのホスト名が示されます。

API の生のエラーがそのまま表示されることもあります。GitHub の Anthropic の Claude Code リポジトリで北京時間 3 月 27 日 15 時 59 分に立てられた issue 39745 では、ユーザーの DavidSchneiderDS が、Windows 上の Claude Code 2.1.85 で Opus を使っていたときの出力「API Error: 529 {"type":"error","error":{"type":"overloaded_error","message":"Overloaded."」を貼っています。Anthropic の API ドキュメントによると、API のエラーはすべてエラーの種類、メッセージ、リクエスト ID を含む JSON で返され、種類が overloaded_error の 529 は「The API is temporarily overloaded」と説明されています。

Anthropic による意味の説明

Claude Code のドキュメントはこのエラーを、API が「temporarily at capacity across all users」の状態だと説明しています。API ドキュメントも「529 errors can occur when the API experiences high traffic across all users」としています。Claude Code のドキュメントは「A 529 is not your usage limit and doesn't count against your quota.」とも明記しています。個々の発生についての詳しい説明は、どちらのドキュメントにもありません。

メッセージが出た時点で、Claude Code はすでに再試行を済ませています。エラーリファレンスによると、Claude Code は一時的な失敗を最大 10 回、指数バックオフで再試行し、Claude の応答がまだ流れ始める前に返ってきた過負荷の応答もその対象です。再試行中は「Retrying in Ns · attempt x/y」のカウントダウンが表示され、バージョン 2.1.198 以降は、失敗が 529 の過負荷だとわかった時点で、カウントダウンの下の行にサービス状況の確認先が表示されます。

試せること

エラーリファレンスは 3 つの手順を挙げています。1 つ目は、Anthropic のステータスページか、メッセージに示されたプロバイダーのステータスページで処理能力に関するお知らせを確認することです。北京時間 10 月 20 日 22 時 22 分に確認したところ、ステータスページは「All Systems Operational」で、Claude API と Claude Code はどちらも正常と表示されていました。2 つ目は、数分後にもう一度試すことです。

3 つ目は、/model を実行して別のモデルに切り替えることで、ドキュメントは理由を「capacity is tracked per model」と説明しています。特定のモデルの負荷が特に高いときは、Claude Code のほうから「Opus is experiencing high load, please use /model to switch to Sonnet」のようなメッセージで切り替えを促し、Fable モデルではメッセージに Fable と表示されるとドキュメントは説明しています。Code タブや Cowork など Claude Desktop アプリが動かすセッションでは「Opus is experiencing high load. Switch to Sonnet.」と表示され、アプリのモデル選択欄で切り替えます。

再試行の調整

ドキュメントには再試行用の環境変数も載っています。CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS は 529 で拒否されたリクエストを再試行するときの最初の待ち時間で、既定値は 500 ミリ秒です。最大 32000 まで上げると、API が処理能力の限界にあるときに再試行をより長い時間に分散できます。バージョン 2.1.292 以降が必要です。CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS はそのバックオフの上限で、既定値は 32000、最大 64000 で、バージョン 2.1.296 以降が必要です。どちらも fast mode や再試行ウォッチドッグを有効にしているときは効きません。試行回数は CLAUDE_CODE_MAX_RETRIES で設定し、既定値は 10 です。

CI ジョブのような無人のセッションについて、ドキュメントは CLAUDE_CODE_RETRY_WATCHDOG を 1 にすると、429 と 529 の容量エラーを通常の回数で打ち切らずに無期限に再試行すると説明しています。バージョン 2.1.295 以降は、CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS で各リクエストがこれらのエラーを待つ時間に上限を設けられます。API を直接呼び出す開発者向けには、公式 SDK が一時的な失敗を指数バックオフで既定 2 回再試行すると API ドキュメントは説明しています。

529 と 429 の違い

この 2 つのコードは、どちらのドキュメントでも別の項目になっています。Anthropic の API ドキュメントは 429(rate_limit_error)を、組織がレート制限に達した、利用ティアの月間支出上限に達した、または Claude Code ワークスペースの支出上限に達した状態と説明しており、まれに組織の利用量が急増すると、急増を抑える制限(acceleration limits)のために 429 が出ることもあるとしています。Claude Code の「Request rejected (429)」は、API キー、Amazon Bedrock のプロジェクト、Google Cloud のプロジェクトに設定されたレート制限に達した状態です。一方 529 は、上で説明した overloaded_error です。