2026年3月、多くのClaude Codeユーザーが「おかしい」と感じ始めた。Max 5xプランで通常なら8時間使えるはずのセッション枠が、1.5時間で消えてしまう。Max 20xプランでも、たった1回のプロンプト送信で使用量が21%から100%に跳ね上がる。Claude側の問題か、プランが変わったのか——原因がわからないまま、Hacker Newsには不満の声が殺到し、該当スレッドは268ポイントを超えた。

実はこの問題、1つの原因ではなく3つの独立した要因が同時期に重なった結果だった。本稿では、その全容を技術的に整理し、今すぐ実践できる対策までまとめる。


プロンプトキャッシングの基礎:なぜ重要なのか

問題を理解するには、まず「プロンプトキャッシング」の仕組みを知る必要がある。

Claude APIには、会話の文脈を一時的にサーバー側へ保存しておく「プロンプトキャッシング」機能がある。たとえばClaude Codeが動作するとき、毎回のリクエストにはシステムプロンプト(約11,000〜14,000トークン)とこれまでの会話履歴が含まれる。セッションが長引くほど、この「過去の文脈」部分は膨大になっていく。

キャッシングが正常に機能しているとき:

  • 初回リクエスト:文脈全体をキャッシュ(書き込みコスト発生)
  • 以降のリクエスト:キャッシュから読み込み(読み取りコストは書き込みの約1/10)
  • 新規部分のみを追加処理

キャッシングが機能していないとき:

  • 毎回のリクエストで文脈全体をフルコストで処理
  • 長いセッションほど1ターンあたりのコストが爆発的に増加

Claude Opus 4.6のトークン単価で計算すると、キャッシュなしでは1ターンあたり25〜50倍のコストがかかる計算になる。


重なった3つの問題

問題1:プロモーション終了(3月13〜28日)

まず背景として、Anthropicはオフピーク時間帯での使用量を2倍にする期間限定キャンペーンを実施していた。このプロモーションが終了したことで、ユーザーは「使える量が半分になった」と感じるようになった。

問題2:ピークアワー絞り込み(3月26日発表)

Anthropicは3月26日、ピーク時間帯(太平洋時間 午前5時〜11時 / 東部時間 午前8時〜午後2時)における使用制限を強化すると発表した。この時間帯は日本時間の深夜から午前中にあたり、夜間作業が多い日本のエンジニアにも影響が出た。

Anthropicの公式説明は「容量管理」だったが、ユーザーには透明性の欠如として受け取られた。

問題3:プロンプトキャッシュの破損(最大の原因)

最も深刻だったのが、キャッシュメカニズム自体の破損だ。v2.1.76前後のバージョンで、キャッシュが毎ターン無効化されるという致命的なバグが発生した。

2026年3月31日、npmへの意図しないソースコード漏洩により、根本原因と思われる2つの候補が特定された:

原因候補A:アテステーションデータの変動

Claude Codeはリクエストごとにサーバーへ「アテステーションデータ」(検証情報)を付加する。このデータがリクエストごとに異なる値を持つため、キャッシュのハッシュが毎回変わり、前回のキャッシュが「別のリクエスト」として扱われてしまう。

原因候補B:ダミーツール定義の挿入

蒸留攻撃(モデルの出力を学習して別のモデルを作る行為)への対策として ANTI_DISTILLATION_CC というフラグが実装されており、このフラグがツール定義を毎リクエストで変更していた可能性がある。ツール定義はキャッシュのキーとして使われるため、変更されるたびにキャッシュが破棄される。

加えて、ネストされた CLAUDE.md ファイルの内容が重複注入される別のバグや、StructuredOutput キャッシュのバグも同時期に確認されている。


被害の実態:どれほど深刻だったか

具体的な被害報告からは、問題の深刻さが伝わってくる。

プラン通常の使用期間バグ発生時
Max 5x8時間程度約1.5時間で枯渇
Max 20x終日使用可能1プロンプトで21%→100%
Pro複数日使用可能3プロンプトで上限到達

会話履歴が長くなるほど被害は拡大する。長時間セッションでは225,000トークン以上の履歴が毎ターンフルコストで処理され、Opus 4.6では1ターンあたりのコストが本来の25〜50倍に膨らんでいた計算になる。

使用量がパーセンテージ表示しかされず、トークン消費の内訳が完全に不透明だったことも被害を拡大させた。ユーザーは何が原因かわからないまま、限界に達してから気づく状況が続いた。


Anthropicの対応と修正状況

Hacker Newsでの炎上を受け、Anthropicは段階的な修正を実施した。

v2.1.88での修正内容

  • ツール定義の安定化(セッション中にスキーマが変わらないよう修正)
  • ネストされた CLAUDE.md の重複注入バグ修正
  • StructuredOutput キャッシュのバグ修正

ただし、TTLのデフォルト値変更(1時間 → 5分)については、Anthropicは「意図的な変更」と「容量管理の一環」と説明しており、1時間TTLへの全面的な復帰は現時点では確認されていない。


今すぐできる7つの対策

被害を最小化するための実践的な対策をまとめる。

対策1:ピーク時間を避ける

米国太平洋時間の午前5時〜11時(日本時間の午後9時〜翌午前3時)を避ける。この時間帯はAnthropicのサーバーが最も混雑し、制限が厳しくなる。

対策2:セッションを短く保つ

長時間の1セッションより、短い独立したセッションに分割する。コンテキストが長くなるほど、キャッシュ破損時の損失が大きくなる。/clear コマンドで定期的にコンテキストをリセットするのも有効だ。

対策3:--resume フラグを避ける

セッション再開(--resume)は一見便利だが、キャッシュが効かない状態では過去の履歴を毎回フルコストで再処理してしまう。問題のある期間中は避けるのが賢明だ。

対策4:モデルをSonnetに切り替える

Opus 4.6からSonnet 4.6に切り替えると、トークン単価が約1/5になる。コーディングタスクの多くはSonnetで十分な品質が出る。高精度が必要な場面でのみOpusを使う使い分けが効果的だ。

対策5:バージョンを最新に保つ

v2.1.88で主要なキャッシュバグが修正されている。claude --version で確認し、古いバージョンのままであれば更新する。

npm install -g @anthropic-ai/claude-code@latest

対策6:使用量を早めに確認する

セッション開始直後の1〜2ターンで使用量が3〜5%を超えているようなら、キャッシュが正常に機能していない可能性がある。その場合は一度 /clear を実行してコンテキストをリセットしてみる。

対策7:APIを直接使うならTTLを明示する

Claude APIを直接呼び出すアプリケーションを開発している場合、キャッシュのTTLを明示的に指定することを検討する。デフォルトが5分になっている現状では、1時間TTLを明示的にリクエストすることでコストを抑えられる可能性がある。


この問題が示すもの

今回の騒動は、単なる「バグ」以上の問題を浮き彫りにした。

第一に、変更の透明性の問題。TTLのデフォルト変更はひっそりと実施され、ユーザーへの事前告知はなかった。使用量の内訳も不透明で、何が原因かをユーザー自身が特定することは困難だった。

第二に、モデル性能と基盤信頼性は別物だということ。Claude Opus 4.6がどれだけ高性能でも、キャッシュレイヤーが壊れていれば使い物にならない。AIモデルの「性能」と「インフラの安定性」は切り離して評価すべきだ。

第三に、開発者コミュニティの監視力。GitHubイシューとHacker Newsの議論によって、ソースコード漏洩を通じた根本原因の特定まで行われた。公式発表を待つのではなく、コミュニティが自律的に問題を解析した。


まとめ

Claude Codeの「トークン爆食い」問題は、プロモーション終了・ピーク制限・キャッシュ破損という3つの要因が重なった複合的な障害だった。

現時点でのアドバイスは明確だ。最新バージョンに更新し、セッションを短く保ち、ピーク時間を避ける。これだけで被害の大半は防げる。

Anthropicは主要なバグを修正済みだが、TTLのデフォルト変更は維持されている。Claude Codeを本格活用しているエンジニアにとって、プロンプトキャッシングの仕組みを理解しておくことは、これからのコスト管理において欠かせない知識となっている。