CLAUDE LABEN
MCP — 2026-07-28 仕様への対応が Claude 製品群で広がっています。双方向ステートフルなプロトコルからリクエスト・レスポンス型へ移り、MCP サーバーをサーバーレスやエッジに置けるようになりましたEXTENSIONS — 公式拡張が3種そろいました。サーバー側で UI を描く MCP Apps、非同期の長時間処理を扱う Tasks、IdP 経由で組織単位に払い出す Enterprise Managed Auth ですADOPTION — MCP の月間 SDK ダウンロードが4億を超え、年内で約4倍になりました。エージェントとアプリケーションを繋ぐ標準としての位置づけが固まりつつありますQUOTA — Claude Code 契約者向けの週次利用枠 50% 上乗せは本日8月19日が最終日です。長時間のエージェント実行を回すなら今日が最後の機会になりますPRICING — Claude Sonnet 5 の導入価格 100万トークンあたり入力2ドル・出力10ドルは8月31日で終了し、9月1日から入力3ドル・出力15ドルへ移ります。残り12日ですFIX — タイムアウトが固定されたサーバーに対し MCP v2 接続がサブスクリプションを際限なく張り直す不具合が修正され、ユーザー帰属のための forward_user_identity 設定も追加されましたMCP — 2026-07-28 仕様への対応が Claude 製品群で広がっています。双方向ステートフルなプロトコルからリクエスト・レスポンス型へ移り、MCP サーバーをサーバーレスやエッジに置けるようになりましたEXTENSIONS — 公式拡張が3種そろいました。サーバー側で UI を描く MCP Apps、非同期の長時間処理を扱う Tasks、IdP 経由で組織単位に払い出す Enterprise Managed Auth ですADOPTION — MCP の月間 SDK ダウンロードが4億を超え、年内で約4倍になりました。エージェントとアプリケーションを繋ぐ標準としての位置づけが固まりつつありますQUOTA — Claude Code 契約者向けの週次利用枠 50% 上乗せは本日8月19日が最終日です。長時間のエージェント実行を回すなら今日が最後の機会になりますPRICING — Claude Sonnet 5 の導入価格 100万トークンあたり入力2ドル・出力10ドルは8月31日で終了し、9月1日から入力3ドル・出力15ドルへ移ります。残り12日ですFIX — タイムアウトが固定されたサーバーに対し MCP v2 接続がサブスクリプションを際限なく張り直す不具合が修正され、ユーザー帰属のための forward_user_identity 設定も追加されました
記事一覧/Claude Code
Claude Code/2026-08-19中級

一度キャッシュに載った500ページは、直しても消えません

修正をデプロイしたのに壊れたページが出続けたことがあります。原因はコードではなくエッジキャッシュでした。ステータスコードだけを見る保存判定が、200で返る壊れたHTMLを通していたのです。本文の完全性で保存可否を決めるガードの実装と、運用で調整した誤検知の線引きを、実際に踏んだ経緯とともに書きました。

Claude Code225Cloudflare Workers16エッジキャッシュNext.js8運用設計22

プレミアム記事

朝、記事ページの表示崩れを直して push しました。ビルドは通り、デプロイも成功しています。手元で確認すると正しく表示されます。

それなのに、別の端末で開くと崩れたままでした。

シークレットウィンドウでも同じです。もう一度デプロイしても変わりません。コードを何度読み返しても、直っているはずのものが直っていない。この時点で私は、まだキャッシュを疑っていませんでした。ステータスは 200 だったからです。

原因はエッジキャッシュでした。壊れた HTML が正常な応答として保存され、そのまま配信され続けていたのです。修正版のコードは、そのキャッシュの後ろで誰にも読まれずに待っていました。

200 で返る壊れたページ、という盲点

キャッシュの保存判定を書くとき、多くの実装はステータスコードを見ます。私もそうしていました。2xx なら保存し、4xx / 5xx なら保存しない。素直で、たいていの場合は正しく動きます。

問題は、アプリケーションが壊れているのに 200 を返す経路があることでした。

Next.js の App Router では、レンダリング中に例外が起きるとエラー境界(error.tsx / global-error.tsx)が代わりの UI を返します。この応答は「エラー画面を正常に返した」ものなので、HTTP としては 200 です。同じことは、記事本文の読み込みだけが失敗して枠だけが描画された場合にも起きます。ページとしては成立しているのに、中身が空です。

つまりステータスコードは、そのページが読者にとって意味のある内容かどうかを何も語っていません。

応答の状態HTTP ステータスステータス基準の保存判定読者にとって
正常なページ200保存する問題なし
エラー境界が返した画面200保存する壊れている
本文が空のまま描画された枠200保存する壊れている
途中で切れた HTML200保存する壊れている
サーバーエラー500保存しない壊れているが再取得される

表の2行目から4行目が、私が踏んだ穴です。これらは一度保存されると、TTL が切れるまで、あるいは明示的に無効化するまで残り続けます。原因が数分で解決していても、配信は何時間も壊れたままになります。

ここで一番厄介なのは、障害が「継続している」のではなく「固定されている」ことです。ログを見ても、その瞬間のエラーはとっくに収まっています。再現しようとしても再現しません。それでも読者には壊れたページが届きます。デプロイのたびに首を傾げていた朝の正体は、これでした。

事故の起点は、たいてい一瞬の失敗です

なぜ壊れた HTML が生まれたのかも書いておきます。

個人開発で運用している4サイトは、Next.js を Cloudflare Workers に載せています。記事の本文 HTML は JSON のメタデータとは分けて配置し、静的アセットのバインディング経由で読み出す構成です。Worker のサイズ上限に収めるための設計で、その経緯は別の記事に書きました(Cloudflare Workers の 62 MiB 制限とコンテンツ分割アーキテクチャ)。

この構成では、本文の取得は「アセットを読む」という一手が挟まります。デプロイ直後の数秒間、あるいは瞬間的な失敗で、この読み取りが空を返すことがありました。頻度としては稀です。1日に何度も起きるものではありません。

ただ、稀であることは救いになりませんでした。キャッシュは、稀な失敗を恒久的な状態に変える装置だからです。1万リクエストのうち1回だけ失敗しても、その1回がキャッシュに載れば、残りの9,999人はその失敗を見ます。

確率の低さで安心していると、この非対称性を見落とします。私自身、稀にしか起きないのだから急がなくてよいと考えていて、実際には毎日誰かが同じ壊れたページを見ていました。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
キャッシュに保存してよい応答かどうかを、ステータスコードではなく本文の完全性で判定できるようになります
壊れたページが配信され続ける事故を、キャッシュへ書き込む一箇所のガードで未然に止められるようになります
修正を出しても直らないとき、コードとキャッシュのどちらを疑うかを最初の数分で切り分けられるようになります
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

Claude Code2026-04-21
Claude Code で Next.js × Cloudflare Workers の本番運用を乗り越える — バンドルサイズ危機からエッジキャッシュ設計まで、実際に詰まった場所と解決策を全公開
Next.js アプリを Cloudflare Workers で運用するとき、Claude Code は単なるコード補完ツール以上の存在になります。62 MiB バンドル制限・エッジキャッシュ設計・Content Split Architecture など、実運用で詰まった問題と解決策を完全公開。
Claude Code2026-04-06
Claude Code × Next.js 15 App Router 本番開発:RSC・Server Actions・認証・テスト・デプロイまで
Claude CodeとNext.js 15 App Routerを組み合わせた本番開発の完全ガイド。RSC設計・Server Actions・データフェッチング戦略・Auth.js v5認証・Vitestテスト・Cloudflareデプロイまで、実務で使える実装パターンを網羅します。
Claude Code2026-08-16
Todo ツールが既定オフになった Claude Code で、多段作業の進捗をどう追うか
Claude Code v2.1.233 以降、新しいモデルでは TodoWrite と Task 系ツールが既定で読み込まれません。環境変数で戻す前に確かめるべき3つの分岐と、チェックリストの代わりに置いた作業台帳の実装、並列実行で台帳が壊れた境界の実測結果をまとめます。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →