2026年3月以降、Claude Codeの有料ユーザーから「いつもより速くクォータが尽きる」という報告が相次いでいる。Proプラン(月額20ドル)の利用者が5時間のセッション上限内でわずか2回しかプロンプトを送れないケースも報告されており、月額200ドルのサブスクリプション利用者の中には半年間一度もなかったクォータ切れを3月以降初めて経験した者もいる。
原因を追究した複数の開発者がClaude Codeのローカルログを独自に解析した結果、Anthropicがサブエージェントのキャッシュ設定を少なくとも2回、告知なしに変更していた痕跡が見つかった。ある開発者の試算では、この変更による過払い額は2,530ドルに達するという。
キャッシュTTLの仕組みと「5分 vs 1時間」で生じる10倍のコスト差
Claude Codeではメッセージを送信するたびに、システムプロンプト・CLAUDE.md・過去の会話履歴・ファイル内容など膨大なコンテキストがAPIに送られる。Opus 4.6で深いセッションを続けると、このコンテキストは30万〜40万トークンに膨らむことも珍しくない。プロンプトキャッシュは直近のリクエストで処理済みのコンテキストを再利用する仕組みで、キャッシュからの読み取りコストは通常の入力処理と比べて約10分の1に抑えられる。
キャッシュにはTTL(Time to Live、有効期限)が設定されており、5分間と1時間の2種類が存在する。5分・1時間いずれのキャッシュも書き込み時はベース価格に対して割増(5分は25%増、1時間は100%増)がかかるが、キャッシュヒットさえすれば読み取りコストはベース価格の約10%に下がるため、長時間セッションでは書き込み時の追加投資を読み取りの節約で回収できる。問題はキャッシュミスが起きた場合だ。5分間手を止めるだけでキャッシュが消失し、次のリクエストで全コンテキストの再構築が走る。ある開発者の計算では、キャッシュ読み取りとキャッシュ再構築のコスト差は約10倍だ。
Anthropicは2026年2月1日、Claude Codeのキャッシュ TTLを5分から1時間に延長したと発表した。開発者にとって朗報だった。1時間のTTLがあれば、休憩を挟んでもキャッシュが生き残り、コーヒーを淹れに席を外してもコストが急増しない。ところがこの恩恵は1か月で終わりを告げた。
95日分のログが記録した2度のサイレント回帰
開発者Recca Tsaiは、95日分(2026年1月9日〜4月13日)のClaude Code APIログをPythonスクリプトで解析した。Claude Codeは各セッションのAPI応答を~/.claude/projects/配下のJSONLファイルに記録しており、そこにはAnthropicのサーバーが返すキャッシュTTLのバケット情報(ephemeral_5m_input_tokensとephemeral_1h_input_tokens)が含まれる。この生データを日別・エージェント種別ごとに集計した結果、3つの転換点が浮かび上がった。
第一の転換点は3月6日だ。前日の3月5日まで、サブエージェントのキャッシュは100%が1時間TTLで処理されていた。ところが3月6日を境に1時間TTLの比率は74%に低下し、3月8日には5分TTLが1時間TTLを5対1で上回った。GitHub Issue #46829で同様の分析を投稿した開発者Sean Swanson(cnighswonger)のデータとも正確に一致する。Swansonは119,866件のAPIコールを分析し、この変更による過払い額を2,530ドル88セントと試算した。
第二の転換点は4月9日にあり、Recca Tsaiによる独自の発見だ。4月8日にはサブエージェントの1時間TTL比率が68%を維持していたが、4月9日にはゼロに急落した。以後5日間で4,840件のAPIコールのすべてが5分TTLで処理され、メインエージェントが同日に100%の1時間TTLを維持していたこととの対比は鮮明だ。クォータ超過による一律ダウングレードであれば両方に影響するはずで、サーバー側がサブエージェントのTTLデフォルトを選択的に変更したとしか説明がつかない。
この第二の回帰についても、公式のチェンジログや告知は発行されていない。Recca Tsaiは解析用のPythonスクリプトを公開し、誰でも自身のJSONLログで同様の検証を行えるようにしている。95日間を通じてメインエージェントには一度も5分TTLが適用されておらず、Anthropicが行ったすべてのTTL変更はサブエージェントだけを対象としていた。
バイナリの中に潜む2つのキャッシュ破壊バグ
サーバー側のTTL変更に加えて、Claude Codeのクライアント側にも2つのキャッシュ破壊バグが報告されている。あるリサーチャーがmitmproxyとGhidraを使いClaude Codeバイナリをリバースエンジニアリングして発見した問題で、TTLとは無関係にコストを膨張させる。

1つ目はsentinel replacementバグだ。Claude CodeのスタンドアロンバイナリはカスタムフォークされたBunランタイムで動作し、APIリクエストの送信直前にJSON本文中のcch=00000という課金用識別子を5桁のハッシュに置換する。通常はシステムプロンプト内の文字列が対象だが、JSONのシリアライズ順序上messages[]がsystem[]より前に来るため、会話履歴にこの文字列が含まれるとメッセージ側が先に書き換えられる。結果として毎回のリクエストでキャッシュのプレフィックスが変化し、キャッシュが全面的に無効化される。
このバグが発動するのは、Claude Codeの内部仕様について議論しているセッションや、CLAUDE.mdにsentinel文字列が偶然含まれるケースだ。回避策はnpx @anthropic-ai/claude-code経由でnpmパッケージ版を起動することで、こちらは標準のBun/Nodeランタイムで動作しsentinel置換が発生しない。リサーチャーによる制御実験でペイロードの差分比較により確認済みだ。
2つ目は--resumeコマンドによるキャッシュ回帰だ。v2.1.69で導入されたdeferred_tools_delta(約13KB、ToolSearch経由で利用可能なツールの一覧)は、新規セッションではmessages[0]に挿入されるが、--resume時には会話末尾のmessages[N]に追加される。この位置の違いにより新規と再開でメッセージのプレフィックスが食い違い、キャッシュプレフィックスの照合が失敗する。50万トークンの会話を再開するたびに全コンテキストの再構築が走り、約0.15ドルの追加コストが発生する計算だ(GitHub Issue #34629)。
Anthropicの弁明と埋まらない信頼の溝
Bunの開発者でありAnthropic買収後に同社に入ったJarred Sumnerは、GitHub Issue #46829のコメントでSwansonの分析を「良い調査だ」と評価しつつ、5分TTLへの回帰を弁明した。「Claude Codeのリクエストの相当数はキャッシュされたコンテキストを一度しか使わないワンショットコール」であり、書き込みコストが低い5分キャッシュのほうがトータルで安価になるというのがSumnerの主張だ。Swansonは短期的なサブエージェントのやり取りでは5分キャッシュの書き込みコスト優位が成立することを認めつつも、半年間一度もなかったクォータ切れを3月以降初めて経験した事実は「かつて素晴らしいサービスを使い物にならなくしている」と反論した。
Claude Code開発者のBoris Chernyは、1Mトークンのコンテキストウィンドウ使用時のキャッシュミスが高コストになることを認めている。「1時間以上放置した古いセッションを再開すると完全なキャッシュミスになることが多い」と説明し、デフォルトのコンテキストウィンドウを40万トークンに縮小する案の検討を明らかにした。大量のスキル・エージェント・バックグラウンド自動化によるコンテキスト膨張も一因として指摘している。
これらの説明に対するコミュニティの反応は冷ややかだ。あるRedditユーザーは「開発者の行動は変わっていない。先月はキャッシュを無効化しても問題なかったのに、なぜ今は問題になるのか」と指摘する。Enterprise Teamプランのユーザーからは「3月にはOpusを一日中使えていたが、3月末からはセッション使用量が2時間未満で上限に達し、同じことを繰り返す思考ループにはまるようになった」との報告も寄せられている。
Recca Tsaiの分析は、Anthropicの「安くなった」という主張を部分的に反証している。3月6日以降の混在フェーズではSumnerの説明がある程度成り立つものの、4月9日以降の「サブエージェント100%が5分TTL」は最適化ではなく強制的なダウングレードだ。メインエージェントが同日に100%の1時間TTLを維持している事実がこの解釈を裏付ける。開発者コミュニティに広がる不信感の根底にあるのは、キャッシュの技術的挙動よりも、変更を告知せず「安くなった」と説明するAnthropicのコミュニケーション姿勢だ。開発者cnighswongerが公開したclaude-code-cache-fixパッケージがコミュニティで急速に広まっていること自体が、公式対応への信頼の程度を映している。
Sources
- The Register: Anthropic: Claude quota drain not caused by cache tweaks
- Dev.to (Recca Tsai): I Scanned 95 Days of My Claude Code Logs and Found Anthropic’s Second Silent Cache TTL Regression
- Medium (Coding Nexus): Two Claude Code Bugs That Can Silently Multiply Your API Bill by 10x
- Reddit (r/ClaudeCode): The creator of Claude Code notes on the current Caching Issue
- GitHub: Cache TTL silently regressed from 1h to 5m (Issue #46829)