💨

Claude CodeでBedrock Claude Sonnet 4の429 too many tokensエラーを緩和する

に公開

はじめに

Claude CodeでAWS BedrockのClaude Sonnet 4を使用していると、並列実行時に「429 Too many tokens」エラーが頻発する問題に遭遇することがありませんか?同じような事象に直面する方を想定読書とします。

私も実際にこの問題に悩まされ、調査した結果、緩和方法を見つけることができました。この記事では、その原因と緩和方法について詳しく解説します。

前提・環境

経緯・発生した問題

Claude CodeでBedrock Claude Sonnet 4を使用する際、以下のような症状が発生しました。

  • 単発のリクエストは正常に動作する
    • ただし、会話を続けていると429エラーが発生
  • 並列でリクエストを送信するとすぐに429エラーが発生
  • 簡単なプロンプトでもエラーになる

原因:Token Burndown Rateの仕組み

この問題の根本原因は、Claude 4シリーズ特有のToken Burndown Rateにあると考えます。

Token Burndown Rateとは

Token Burndown Rateは、APIの使用量がクォータ制限に対してどのようにカウントされるかを決定する仕組みです。重要なのは、これは料金計算ではなく、クォータ消費の計算だということです。

Claude 4の特殊な仕組み

モデル Input Token Rate Output Token Rate
Claude Sonnet 4 1:1 1:5
Claude Opus 4 1:1 1:5
その他のBedrockモデル 1:1 1:1

Claude 4では、出力トークン1つにつき5倍のクォータが消費されます。
ref: https://docs.aws.amazon.com/bedrock/latest/userguide/quotas.html#quotas-increase

具体例

100,000 TPM(tokens per minute)のクォータがある場合:

シナリオ1: 10,000出力トークンを生成
- クォータ消費: 10,000 × 5 = 50,000トークン
- 残りクォータ: 50,000トークン

シナリオ2: 20,000出力トークンを生成  
- クォータ消費: 20,000 × 5 = 100,000トークン
- 残りクォータ: 0トークン(次の分まで待機が必要)

対応方法

Claude Codeでこの問題を緩和するには、CLAUDE_CODE_MAX_OUTPUT_TOKENS環境変数を設定することが私の環境においては有効でした。

CLAUDE_CODE_MAX_OUTPUT_TOKENSについては、こちらを参照してください。
https://docs.anthropic.com/en/docs/claude-code/settings#:~:text=CLAUDE_CODE_MAX_OUTPUT_TOKENS

設定方法

~/.claude/settings.jsonを以下のように設定:

{
  "env": {
    "CLAUDE_CODE_USE_BEDROCK": "true",
    "ANTHROPIC_MODEL": "us.anthropic.claude-sonnet-4-20250514-v1:0",
    "CLAUDE_CODE_MAX_OUTPUT_TOKENS": 5000
  },
  "permissions": {
    "allow": [
      "Bash(aws configure:*)"
    ],
    "deny": []
  }
}

ちなみに、公式によると、仕様上の最大出力トークン数は64,000トークンとのことです。
https://docs.anthropic.com/en/docs/about-claude/models/overview#model-comparison-table:~:text=Max-,output,-32000 tokens

まとめ

Claude CodeでBedrock Claude Sonnet 4の429 too many tokensエラーを緩和するポイントは以下の通りです:

  1. Token Burndown Rateを理解する(出力トークンは5倍消費)
  2. CLAUDE_CODE_MAX_OUTPUT_TOKENSを適切に設定する

この設定により、Claude CodeでBedrock Claude Sonnet 4のエラー頻度を大幅に緩和できるようになりました。MAX_OUTPUT_TOKENSの設定による副作用を、追って調査しています。

同じ問題で困っている方の参考になれば幸いです。

追記: 20250611 CLAUDE_CODE_MAX_OUTPUT_TOKENSにて低い値を設定すると以下のようなエラーが得られるので調整が必要でした。現在は5000にしているのですが、今のところ問題なく動作しています。

API Error: Claude's response exceeded the 200 output token maximum. To
configure this behavior, set the CLAUDE_CODE_MAX_OUTPUT_TOKENS environment
variable.

参考資料

GitHubで編集を提案
GMOペパボ株式会社

Discussion