ERR_CACHE_MISSとは?原因と直し方(Chrome・Androidアプリ)
ポイント
ERR_CACHE_MISSは、Chromeがページの保存コピー(キャッシュ)を必要としたのに見つからなかったことを示すエラーで、ウイルスやサイトの故障ではありません。多くはフォーム(POST)で作られたページに「戻る」で戻ったときに起こり、Chromeはフォームを勝手に再送信せず「フォーム再送信の確認」を表示します。再読み込みして[続行]を押すのは、繰り返しても問題ない操作(検索など)のときだけにしてください。決済や注文の後は[続行]を押さず、サイトからページを開き直すか注文履歴を確認します。Androidアプリ内で出る場合は、たいていWebViewがネットワークを使えない状態です。サイト運営者はPost/Redirect/Getパターンで防げます。
今すぐ確認

読み始める
- ERR_
CACHE_ MISSとは? - ERR_
CACHE_ MISSの表示パターン - ERR_
CACHE_ MISSの原因 - ERR_
CACHE_ MISSとフォーム再送信の確認の違い - ERR_
CACHE_ MISSの直し方(ユーザー向け) - 方法1:再読み込みし、安全なときだけ再送信する
- 方法2:キャッシュを削除する(何度も起こる場合のみ)
- 方法3:シークレットモードでテスト
- 方法4:ブラウザ拡張機能の無効化
- 方法5:Chrome(とAndroid System WebView)を更新する
- ERR_
CACHE_ MISSの直し方(開発者向け) - Post/Redirect/Get(PRG)パターン
- Cache-Controlヘッダーの見直し
- WordPressのキャッシュ競合の解決
- AndroidでのERR_
CACHE_ MISS(アプリとWebView) - 「Content unavailable. Resource was not cached」の意味と原因
- 他のブラウザでのERR_
CACHE_ MISS - Chromeの関連キャッシュエラー
- よくある質問
ERR_CACHE_MISSとは?
ERR_CACHE_MISSは、Chromeがページの保存コピー(キャッシュ)を必要としたのに、それが見つからなかったことを意味します。 いちばん多いのは、ログインや検索、購入手続きの結果など、フォームで作られたページに「戻る」で戻ったときです。Chromeはフォームを勝手に再送信しないため、ERR_CACHE_MISSというコード付きで「フォーム再送信の確認」を表示します。
このエラーはブラウザの外には送られず、HTTPステータスコードでもありません。Chromiumのエラー一覧では、エラー-400「The cache does not have the requested entry」(キャッシュに要求されたエントリがありません)と定義されています(net_error_list.h)。Chromeは、「戻る」で再表示できるようにフォームの結果ページのコピーを保存しています。そのコピーがないと、ページを作り直す方法はフォームの再送信しかなく、Chromeはその判断を利用者に任せます。
これは不具合やセキュリティ上の脅威ではなく、安全のための一時停止です。フォームを再送信すると、支払いや注文、投稿など、そのフォームで行った操作が繰り返されるおそれがあります。
ページがno-storeを送っていないか、ヘッダーを確認
ERR_CACHE_MISSの表示パターン
ChromeとEdgeでは、次の2種類のページのどちらかが表示され、メッセージの下にERR_CACHE_MISSと書かれています。
- フォーム再送信の確認 — フォームで作られたページに「戻る」「進む」で移動したとき:「このウェブページを正しく表示するには、先ほど入力したデータが必要です。データは再送信できますが、このページで先ほど行った操作を繰り返すことになります。」その下に「ページの読み込みに必要なデータを再送信するには、再読み込みボタンを押してください。」と表示されます。
- このサイトをキャッシュから読み込むことができません — 「このサイトの保存(キャッシュ)されたコピーを読み取れませんでした。」という説明と[再読み込み]ボタンが表示されます。キャッシュからしか取得できないページが、キャッシュになかった状態です
- 再送信の確認ダイアログ — 1つ目のページで再読み込みを押したとき:「検索しているページは、入力した情報を使用しています。このページに戻った場合、操作のやり直しが発生する可能性があります。続行しますか?」という確認と[続行]ボタン
- net::ERR_CACHE_MISS — DevToolsのコンソールや、AndroidアプリのWebViewのログに出る同じエラー
ERR_CACHE_MISSの原因
原因はどれも同じことに行き着きます。Chromeがキャッシュを使うよう指示されたのに、そのページがキャッシュになかったのです。
- フォームの結果ページに「戻る」「進む」で移動した — Chromeは、フォーム(POSTリクエスト)が生成したページを「戻る」で再表示できるように保存しています。そのコピーが消えていると、フォームを再送信しなければならないため、Chromeは止まって確認を求めます。
- ページが保存しないよう指示していた —
Cache-Control: no-store付きで送られた結果ページは保存されないため、「戻る」で戻ると必ず再送信の確認ページになります。 - キャッシュが削除・整理された — 閲覧履歴データを削除したり、容量を節約するためにChromeがキャッシュを整理したりすると、結果ページの保存コピーも消えます。
- キャッシュのみの読み込み — ネットワークにアクセスできないAndroidのWebView、アプリのオフラインモード、キャッシュ済みのコピーだけを要求するスクリプトは、何も保存されていなければERR_CACHE_MISSで失敗します。
- キャッシュの破損 — Chromium自身の注記によると、キャッシュが読み取れなくなる原因の多くは正しくないシャットダウンです。この場合は「キャッシュから読み込むことができません」のページが表示され、ERR_CACHE_READ_FAILUREを伴うことがよくあります。
- リクエストを書き換える拡張機能 — まれに、リクエストをブロックしたり変更したりする拡張機能が、ページの通常の読み込みを妨げることがあります。シークレット ウィンドウで試せば切り分けられます。
ERR_CACHE_MISSとフォーム再送信の確認の違い
この2つは関連していますが、表示されるタイミングが違います。フォームで作られたページを再読み込みすると、すぐに「フォーム再送信の確認」ダイアログが開きます。後から「戻る」「進む」でそのページに戻ったとき、Chromeにコピーが残っていなければ、ERR_CACHE_MISSのコード付きで「フォーム再送信の確認」ページが表示され、そこで再読み込みを押すと同じダイアログが開きます。[続行]はフォームを再送信し、[キャンセル]は何もせずそのページにとどまります。
Chromeが代わりに判断しないのは、フォームの送信(POST)がHTTPでいう「安全な」リクエストではないからです。もう一度送ると、そのリクエストで行ったことが繰り返されるおそれがあります。
検索や絞り込み、閲覧しただけのページなら[続行]を押してかまいません。支払い、注文、予約、投稿の場合は[キャンセル]を押し、代わりにサイトの注文履歴やメールを確認してください。
ERR_CACHE_MISSの直し方(ユーザー向け)
上から順に試してください。最初の方法で、よくあるケース(「戻る」で戻ったフォームのページ)は解決します。サイト全体が開けない場合は、サーバーダウンチェックで、自分だけでなく全員にとってダウンしているかどうかを確認してください。
方法1:再読み込みし、安全なときだけ再送信する
「フォーム再送信の確認」ページでは、再読み込み(またはF5キー)を押します。Chromeがフォームを再送信するかどうかを尋ねるので、繰り返しても問題ない場合だけ[続行]をクリックしてください。さらに安全なのは「戻る」を使わないことです。サイトのメニューやアドレスバーからページを開き直せば、フォームを介さずに新しいページが読み込まれます。
通常のページで「このサイトをキャッシュから読み込むことができません」と表示される場合は、キャッシュを使わないハード再読み込みをします。
# Windows / Linux
Ctrl + Shift + R
# Mac
Cmd + Shift + R
# Windows / Linux alternative
Ctrl + F5 (or Shift + F5)DevToolsを開いた状態(F12)なら、再読み込みボタンを右クリックして「キャッシュの消去とハード再読み込み」を選ぶこともできます。
方法2:キャッシュを削除する(何度も起こる場合のみ)
キャッシュの削除は、フォームのケースには効きません。保存されたコピーを消すので、かえってこのエラーの原因になることもあります。効果があるのは、通常のページで「このサイトをキャッシュから読み込むことができません」が繰り返し表示される場合で、これはキャッシュの破損を示しています。
- ステップ1:
Ctrl+Shift+Delete(MacはCmd+Shift+Delete)を押して「閲覧履歴データを削除」を開きます - ステップ2: 期間を「全期間」にします
- ステップ3: 「キャッシュされた画像とファイル」にチェックを入れます(Cookieは任意です。下記を参照)
- ステップ4: 「データを削除」をクリックし、Chromeを再起動します
方法3:シークレットモードでテスト
シークレット ウィンドウは空のキャッシュで始まり、拡張機能も(シークレット モードでの実行を許可していない限り)動きません。Ctrl+Shift+N(Windows、Linux)またはCmd+Shift+N(Mac)で開き、同じページを「戻る」ではなくサイトから読み込んでください。
シークレット ウィンドウでは表示できるのに通常のウィンドウでは表示できない場合は、拡張機能かキャッシュが関係しています。方法2と方法4を試してください。
方法4:ブラウザ拡張機能の無効化
リクエストをブロックしたり書き換えたりする拡張機能が、まれにページの通常の読み込みを妨げることがあります。
chrome://extensions/を開いてすべての拡張機能をオフにし、ページをもう一度読み込みます。エラーが消えたら、1つずつオンに戻して原因の拡張機能を特定してください。
方法5:Chrome(とAndroid System WebView)を更新する
chrome://settings/helpを開くと、更新があればインストールされます。更新はChromeを再起動すると適用されます。Androidでは、Webページを表示するアプリはWebViewを使っているため、Google Play ストアでChromeとAndroid System WebViewの両方を更新してください。
更新の直後からエラーが出始め、フォーム以外のページでも表示される場合は、Chromiumの課題トラッカーでお使いのバージョンに既知の問題がないか確認してください。
ERR_CACHE_MISSの直し方(開発者向け)
訪問者があなたのサイトでERR_CACHE_MISSに遭遇しているなら、ほぼ確実に、サーバーがフォームのPOSTから直接生成したページに「戻る」で戻っています。修正はサーバー側で行います。Post/Redirect/Getです。
Post/Redirect/Get(PRG)パターン
Post/Redirect/Get(PRG)パターンは、ERR_CACHE_MISSに対する決定的な解決策です。考え方はシンプルで、POSTのフォーム送信を処理した後、レスポンスを直接表示するのではなく、HTTPリダイレクト(302または303)でGETの確認ページに転送します。
PRGがないと、ブラウザの履歴はPOSTリクエストで終わります。ユーザーが再読み込みするとChromeはフォームを再送信するか尋ね、「戻る」「進む」で戻ったときにコピーが消えていればERR_CACHE_MISSを表示します。PRGを使うと履歴は安全なGETリクエストで終わるため、再読み込みしても「戻る」で戻っても問題は起きません。
# Without PRG (causes ERR_CACHE_MISS):
POST /checkout → 200 OK (render confirmation page)
# User reloads → "Confirm Form Resubmission" dialog
# User comes back with Back/Forward, copy gone → ERR_CACHE_MISS
# With PRG (no cache issues):
POST /checkout → 303 See Other → Location: /order/12345
GET /order/12345 → 200 OK (render confirmation page)
# User refreshes → Normal page reload (safe GET request)リダイレクトには303 See Other(推奨)か302 Foundを使います。RFC 9110は303について「主にPOSTの処理結果として、ユーザーエージェントを別のリソースへリダイレクトさせるために使われる」と説明しており、まさに求める動作です。フォームの送信先が実際に返しているステータスコードは、DNS Robotのリダイレクトチェッカーで確認できます。
Cache-Controlヘッダーの見直し
フォームの結果ページが何を送っているかは、Chrome DevTools(F12 → ネットワーク → 該当のリクエスト → ヘッダー)で確認できます。外部からなら、DNS RobotのHTTPヘッダーチェッカーを使ってください。
フォームで作られたページにCache-Control: no-storeが付いていると、「戻る」に必要なコピーをChromeが保存しないため、「戻る」のたびに再送信の確認ページになります。個人情報や支払い情報を含むページではno-storeを残したままPRGを使い、結果ページがいずれにせよ通常のGETページになるようにしてください。
| フォームの結果ページのヘッダー | 保存されるもの | 「戻る」で表示されるもの |
|---|---|---|
Cache-Control: no-store | 何も保存されない | フォーム再送信の確認(ERR_CACHE_MISS) |
no-cache または max-age=… | 履歴用に保存されたコピー | 保存されたコピー |
| PRG:303でGETページへ | 通常のGETページ | そのページ自体。再読み込みも安全 |
WordPressのキャッシュ競合の解決
ページキャッシュ系のプラグインが、それ自体でERR_CACHE_MISSを起こすわけではありません。ただし、カートやチェックアウト、ログインのページがキャッシュされているとフォームが正しく動かず、訪問者がページを行ったり来たりすることになり、そこでこのエラーが出ます。
WooCommerceを使っている場合は、キャッシュプラグインが動的ページを除外していることを確認してください。カート、チェックアウト、マイアカウントは決してキャッシュしてはいけません。WP Super Cache、W3 Total Cache、LiteSpeed Cacheには、どれもそのための設定があります。
- すべてのキャッシュをパージ — キャッシュプラグイン、ホスティングキャッシュ(該当する場合)、CDNキャッシュを同時にクリア
- 競合するプラグインの無効化 — フルページキャッシュプラグインを2つ同時に実行しないこと
- 動的ページの除外 — カート、チェックアウト、ログインページはキャッシュから除外する必要がある
- サーバーレベルのキャッシュを確認 — ホスティングプロバイダーが独自のキャッシュレイヤー(Varnish、LiteSpeedなど)を追加し、プラグインと競合している可能性がある
AndroidでのERR_CACHE_MISS(アプリとWebView)
アプリの中で表示された場合(アプリ内ブラウザ、ログイン画面や支払い画面など)は、Google Play ストアでChromeとAndroid System WebViewを更新してから、アプリのキャッシュを削除します。設定 → アプリ → 対象のアプリ → ストレージとキャッシュ(機種によっては「ストレージ」)→ キャッシュを削除。それでも続く場合はアプリ自体の修正が必要なので、アプリの開発者に報告してください。
アプリを開発している場合、WebViewにはINTERNETパーミッションが必要です。これがないと、AndroidはWebViewのネットワーク読み込みを既定でブロックするため(setBlockNetworkLoadsの既定値がtrueになります)、ページはキャッシュからしか読み込めず、net::ERR_CACHE_MISSで失敗します。
<!-- AndroidManifest.xml, inside <manifest> -->
<uses-permission android:name="android.permission.INTERNET" />次にキャッシュモードを確認します。LOAD_CACHE_ONLY(「Don't use the network, load from the cache」=ネットワークを使わずキャッシュから読み込む。オフラインモードのためによく設定されます)は、まだキャッシュされていないものすべてでERR_CACHE_MISSになるため、LOAD_DEFAULTを使ってください。FlutterやReact Nativeのアプリでも、パーミッションはAndroidプロジェクトのAndroidManifest.xmlに記述します。
「Content unavailable. Resource was not cached」の意味と原因
「Content unavailable. Resource was not cached」は、ERR_CACHE_MISSのようにページが表示されなくなるエラーではなく、Chrome DevTools(デベロッパーツール)が出すメッセージです。直訳すると「内容を表示できません。リソースはキャッシュされていません」で、DevToolsがファイルの中身を表示しようとしたのに、Chromeの手元に中身が残っていなかったことを表します。
Chromiumのソースコード(inspector_page_agent.cc)では、DevToolsがファイルの内容を取り寄せる命令(Page.getResourceContent)に対して、ファイルの記録はあるが中身が0バイトで、キャッシュから読み込まれたものでもないときにこの文言を返すと決められています。主に「ソース(Sources)」パネルや「アプリケーション(Application)」パネルでファイルを開いたときに表示され、EdgeなどほかのChromium系ブラウザや、chrome://inspectでAndroidのChrome・WebViewを調べるときも同じです。
| よくある状況 | 中身が0バイトになった理由 | 確認すること |
|---|---|---|
| 通信が失敗した・ブロックされた | オフライン、CORSエラー、広告ブロッカーなどの拡張機能による遮断、読み込みのキャンセルで、本文を受け取れていない | 「ネットワーク」パネルのステータス列(failed、blocked、CORS errorなど)と「コンソール」のエラー |
| もともと本文のない応答 | 204 No ContentやHEADリクエストへの応答は、HTTPの仕様で本文を持たない | 「ネットワーク」パネルでステータスコードとリクエストメソッドを確認 |
| Service Worker(PWA)が応答した | Service Workerが本文のない応答(空のResponse)を返している | 「アプリケーション」パネル → Service Workerで登録を解除してから再読み込み |
原因を確かめるには、DevToolsを開いたままページを再読み込み(Ctrl+Shift+R、MacはCmd+Shift+R)し、「ネットワーク」パネルで同じファイルを選んでください。DevToolsが通信を最初から記録するので、本当のステータスコードやエラー内容が表示されます。サーバーが返しているステータスコードやCache-Controlヘッダーは、HTTPヘッダーチェッカーを使ってブラウザの外からも確認できます。
補足: このメッセージ自体は無害で、ページを見ているだけなら対処は不要です。ページそのものが開けずにERR_CACHE_MISSが表示されている場合は別の問題なので、上の「ユーザー向け」の直し方を試してください。
他のブラウザでのERR_CACHE_MISS
ERR_CACHE_MISSはChromiumのエラーコードなので、Chrome、Edge、Brave、Opera、Vivaldiはどれも同じページを表示します。それ以外のブラウザも同じ状況で止まりますが、表示される言葉は異なります。
| ブラウザ | 表示される内容 | 備考 |
|---|---|---|
| Chrome / Edge / Brave / Opera | フォーム再送信の確認、または「このサイトをキャッシュから読み込むことができません」 | Chromiumの同じページとコード(ERR_CACHE_MISS) |
| Firefox | ドキュメントが有効期限切れです(Document Expired) | 「リクエストされたドキュメントは Firefox のキャッシュ内にありません。」 |
| Safari | フォームを再送信する前のダイアログ | フォームをもう一度送信するかどうかを確認する |
Firefoxのページのタイトルは「ドキュメントが有効期限切れです」(英語版では「Document Expired」)で、「リクエストされたドキュメントは Firefox のキャッシュ内にありません。安全対策のため、Firefox は注意を要するドキュメントを自動的に再リクエストしません。[再試行] ボタンをクリックしてドキュメントをウェブサイトから読み込んでください。」と表示されます。対処は同じで、再送信しても安全なときだけ再読み込みするか、サーバー側でPRGを使います。
Chromeの関連キャッシュエラー
Chromeのキャッシュ関連のエラーは、どれもERR_CACHE_で始まります。エラーページまで表示されるのはごく一部で、ほとんど(チェックサムの不一致を表す-408など)はキャッシュの内部だけで使われます。
| エラーコード | Chromiumでの定義 | よくある原因 |
|---|---|---|
| ERR_CACHE_MISS (-400) | The cache does not have the requested entry(キャッシュに要求されたエントリがない) | フォームの結果ページへの「戻る」、キャッシュのみの読み込み |
| ERR_CACHE_READ_FAILURE (-401) | Unable to read from the disk cache(ディスクキャッシュから読み取れない) | クラッシュや正しくないシャットダウンによるキャッシュの破損 |
| ERR_CACHE_WRITE_FAILURE (-402) | Unable to write to the disk cache(ディスクキャッシュに書き込めない) | ディスクの空き容量不足や権限の問題 |
ERR_CACHE_READ_FAILUREでも同じ「このサイトをキャッシュから読み込むことができません」のページが表示され、こちらはキャッシュの削除(方法2)で直ります。ERR_CACHE_MISSの場合は、まず上のフォーム関連の方法から試してください。別のChromeエラーが出ている場合は、ERR_CONNECTION_REFUSEDやERR_NAME_NOT_RESOLVEDを参照してください。
HTTPヘッダーを確認する
DNS Robotの無料HTTPヘッダーチェッカーを使用して、サーバーのCache-Controlヘッダーやブラウザキャッシュに影響するその他のレスポンスディレクティブを検査しましょう。
出典
- net_error_list.h (CACHE_MISS -400), Chromium
- localized_error.cc (the error pages for ERR_CACHE_MISS), Chromium
- RFC 9110 §15.4.4: 303 See Other, IETF
- WebSettings (setBlockNetworkLoads, LOAD_CACHE_ONLY), Android Developers



