ERR_CACHE_MISS: Fix It in Chrome, Edge, Android & WebView

Key takeaway

ERR_CACHE_MISS means Chrome needed a saved copy of a page and had none. Usually you went Back to a page created by a form (a POST), so Chrome shows "Confirm Form Resubmission" instead of sending the form again. Press Reload and click Continue only if repeating the action is safe (a search, not a payment); otherwise open the page again from the site. In Android apps it usually means the WebView can't use the network. Site owners prevent it with Post/Redirect/Get.

Check it now

ERR_CACHE_MISS error fix guide showing Chrome cache error state and step-by-step solutions for users and developers
ERR_CACHE_MISS error fix guide showing Chrome cache error state and step-by-step solutions for users and developers
Start reading
  1. What Is ERR_CACHE_MISS?
  2. What ERR_CACHE_MISS Looks Like
  3. What Causes ERR_CACHE_MISS?
  4. ERR_CACHE_MISS vs Confirm Form Resubmission
  5. How to Fix ERR_CACHE_MISS (For Users)
  6. Fix 1: Reload, and Resubmit Only If It's Safe
  7. Fix 2: Clear the Cache (Only If It Keeps Happening)
  8. Fix 3: Test in Incognito Mode
  9. Fix 4: Disable Browser Extensions
  10. Fix 5: Update Chrome (and Android System WebView)
  11. How to Fix ERR_CACHE_MISS (For Developers)
  12. The Post/Redirect/Get (PRG) Pattern
  13. Review Your Cache-Control Headers
  14. Fix WordPress Caching Conflicts
  15. ERR_CACHE_MISS on Android (Apps and WebView)
  16. ERR_CACHE_MISS in Other Browsers
  17. Related Chrome Cache Errors
  18. Frequently Asked Questions

What Is ERR_CACHE_MISS?

ERR_CACHE_MISS means Chrome needed a saved (cached) copy of a page and didn't have one. Most often you pressed Back to a page that a form created, such as a login, search or checkout result: Chrome won't send the form again on its own, so it shows Confirm Form Resubmission with the code ERR_CACHE_MISS.

It never leaves your browser and isn't an HTTP status code. Chromium's error list defines it as error -400: "The cache does not have the requested entry" (net_error_list.h). Chrome keeps copies of form results so Back can show them again; when that copy is missing, the only way to rebuild the page is to resend the form, and that is a decision Chrome leaves to you.

It's a safety stop, not a fault or a security threat: resending a form can repeat what it did, such as a payment, an order or a post.

Is the page sending no-store? Check its headers

What ERR_CACHE_MISS Looks Like

Chrome and Edge show one of two pages, with ERR_CACHE_MISS printed under the message:

  • Confirm Form Resubmission — after Back or Forward to a page a form created: "This webpage requires data that you entered earlier in order to be properly displayed. You can send this data again, but by doing so you will repeat any action this page previously performed." Below it: "Press the reload button to resubmit the data needed to load the page."
  • This site can't be loaded from the cache — with "The saved (cached) copy of this site was unreadable." and a Reload button: a page Chrome could only take from its cache wasn't there
  • The resubmission dialog — after you press Reload on the first page: "The page that you're looking for used information that you entered. Returning to that page might cause any action you took to be repeated. Do you want to continue?" with a Continue button
  • net::ERR_CACHE_MISS — the same error in the DevTools console, or in an Android app's WebView log

What Causes ERR_CACHE_MISS?

Every cause comes down to the same thing: Chrome was told to use its cache, and the page wasn't in it.

  • Going Back or Forward to a form's result page — Chrome stores the page a form (a POST request) produced so Back can show it again. If that copy is gone, Chrome would have to resend the form, so it stops and asks.
  • The page said not to store it — a result page sent with Cache-Control: no-store is never kept, so going Back to it always lands on the resubmission page.
  • A cleared or trimmed cache — clearing browsing data, or Chrome trimming its cache to save space, removes the stored copy of a result page.
  • Cache-only loads — an Android WebView without network access, an app's offline mode, or a script that asks for a cached copy only all fail with ERR_CACHE_MISS when nothing is stored.
  • A damaged cache — Chromium's own notes say an unreadable cache usually comes from an improper shutdown. That shows the "can't be loaded from the cache" page, often with ERR_CACHE_READ_FAILURE.
  • An extension that rewrites requests — rarely, an extension that blocks or changes requests stops a page loading normally. An Incognito window rules it out.

ERR_CACHE_MISS vs Confirm Form Resubmission

They're related, but they appear at different moments. Reloading a page a form produced opens the Confirm Form Resubmission dialog straight away. Coming back to that page later with Back or Forward, when Chrome no longer has a copy, shows the Confirm Form Resubmission page with the code ERR_CACHE_MISS; pressing Reload there then opens the same dialog. Continue sends the form again, Cancel stays put.

Chrome won't decide for you because a form submission (POST) isn't a "safe" request in HTTP's terms: sending it again can repeat whatever it did.

Click Continue for a search, a filter or a page you only viewed. For a payment, an order, a booking or a post, click Cancel and check the site's order history or your email instead.

How to Fix ERR_CACHE_MISS (For Users)

Work through these in order. The first one fixes the usual case: a form page you went back to. If the whole site won't load, check whether it's down for everyone with the Website Down Checker.

Fix 1: Reload, and Resubmit Only If It's Safe

On the Confirm Form Resubmission page, press Reload (or F5). Chrome asks whether to send the form again: click Continue only if repeating it is harmless. Safer still: don't go Back. Open the page again from the site's own menu or address bar, which loads a fresh copy with no form involved.

On a normal page that says "This site can't be loaded from the cache", do a hard reload, which skips the cache:

bash
# Windows / Linux
Ctrl + Shift + R

# Mac
Cmd + Shift + R

# Windows / Linux alternative
Ctrl + F5  (or Shift + F5)

With DevTools open (F12), you can also right-click the reload button and choose Empty Cache and Hard Reload.

Fix 2: Clear the Cache (Only If It Keeps Happening)

Clearing the cache doesn't help the form case: it deletes stored copies, so it can even cause the error. It does help when normal pages keep showing "This site can't be loaded from the cache", which points to a damaged cache:

  • Step 1: Press Ctrl+Shift+Delete (Mac: Cmd+Shift+Delete) to open Delete browsing data
  • Step 2: Set the time range to All time
  • Step 3: Tick Cached images and files (cookies are optional, see below)
  • Step 4: Click Delete data and restart Chrome

Fix 3: Test in Incognito Mode

An Incognito window starts with an empty cache and without your extensions (unless you allowed them there). Open one with Ctrl+Shift+N (Windows, Linux) or Cmd+Shift+N (Mac) and load the same page from the site, not with Back.

If it works there but not in a normal window, an extension or the cache is involved: try Fixes 2 and 4.

Fix 4: Disable Browser Extensions

Extensions that block or rewrite requests can occasionally stop a page loading normally.

Go to chrome://extensions/, turn every extension off, then load the page again. If the error goes, turn them back on one at a time to find the one responsible.

Fix 5: Update Chrome (and Android System WebView)

Go to chrome://settings/help to install any update; Chrome applies it after a restart. On Android, update both Chrome and Android System WebView in the Play Store, since apps that show web pages use WebView.

If the error started right after an update and appears on pages that aren't forms, check the Chromium issue tracker for a known problem with your version.

How to Fix ERR_CACHE_MISS (For Developers)

If visitors hit ERR_CACHE_MISS on your site, they are almost certainly going Back to a page your server rendered straight from a form POST. The fix is on the server: Post/Redirect/Get.

The Post/Redirect/Get (PRG) Pattern

The Post/Redirect/Get (PRG) pattern is the definitive fix for ERR_CACHE_MISS. The concept is simple: after processing a POST form submission, respond with an HTTP redirect (302 or 303) to a GET confirmation page instead of rendering the response directly.

Without PRG, the browser history ends with a POST request. When the user reloads, Chrome asks to resend the form; when they come back to it with Back or Forward and the copy is gone, Chrome shows ERR_CACHE_MISS. With PRG, the browser history ends with a safe GET request that can be refreshed or navigated back to without any issues.

bash
# 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)

Use 303 See Other (preferred) or 302 Found for the redirect. RFC 9110 says 303 is "primarily used to allow the output of a POST action to redirect the user agent to a different resource", which is exactly what you want. DNS Robot's Redirect Checker shows the status code your form endpoint really returns.

Review Your Cache-Control Headers

Check what your form's result page sends with Chrome DevTools (F12 → Network → the request → Headers), or from outside with DNS Robot's HTTP Header Checker.

On a page a form produced, Cache-Control: no-store stops Chrome keeping the copy that Back needs, so every Back lands on the resubmission page. Keep no-store on pages with personal or payment data and use PRG, so the result is a normal GET page anyway.

On a form's result pageWhat gets storedWhat Back shows
Cache-Control: no-storeNothingConfirm Form Resubmission (ERR_CACHE_MISS)
no-cache or max-age=…A copy, kept for historyThe stored copy
PRG: 303 to a GET pageA normal GET pageThe page itself; Reload is safe

Fix WordPress Caching Conflicts

Page-caching plugins don't cause ERR_CACHE_MISS by themselves, but a cached cart, checkout or login page breaks forms and sends visitors back and forth, which is where the error appears.

If you use WooCommerce, make sure your caching plugin excludes dynamic pages: cart, checkout and my-account should never be cached. WP Super Cache, W3 Total Cache and LiteSpeed Cache all have settings for this.

  • Purge all caches — Clear your caching plugin cache, hosting cache (if applicable), and CDN cache simultaneously
  • Disable conflicting plugins — Never run two full-page caching plugins at the same time
  • Exclude dynamic pages — Cart, checkout, and login pages must be excluded from cache
  • Check server-level caching — Your hosting provider may add their own cache layer (Varnish, LiteSpeed, etc.) that conflicts with your plugin

ERR_CACHE_MISS on Android (Apps and WebView)

If you see it inside an app (an in-app browser, a login or payment screen), update Chrome and Android System WebView in the Play Store, then clear the app's cache: Settings → Apps → the app → Storage & cache (Storage on some phones) → Clear cache. If it continues, the app itself needs a fix: report it to its developer.

If you build the app: a WebView needs the INTERNET permission. Without it, Android blocks the WebView's network loads by default (setBlockNetworkLoads defaults to true), so pages can only come from the cache and fail with net::ERR_CACHE_MISS.

xml
<!-- AndroidManifest.xml, inside <manifest> -->
<uses-permission android:name="android.permission.INTERNET" />

Then check the cache mode: LOAD_CACHE_ONLY ("Don't use the network, load from the cache", often set for an offline mode) fails with ERR_CACHE_MISS for anything not already cached, so use LOAD_DEFAULT. In Flutter and React Native apps the permission goes in the Android project's AndroidManifest.xml too.

ERR_CACHE_MISS in Other Browsers

ERR_CACHE_MISS is Chromium's code, so Chrome, Edge, Brave, Opera and Vivaldi all show the same pages. Other browsers stop in the same situation with their own words.

BrowserWhat it showsNotes
Chrome / Edge / Brave / OperaConfirm Form Resubmission, or This site can't be loaded from the cacheSame Chromium pages and code (ERR_CACHE_MISS)
FirefoxDocument Expired"The requested document is not available in Firefox's cache"
SafariA dialog before resending the formAsks whether to send the form again

Firefox's page is titled Document Expired: "The requested document is not available in Firefox's cache. As a security precaution, Firefox does not automatically re-request sensitive documents. Click Try Again to re-request the document from the website." The fix is the same: reload only if resending is safe, or use PRG on the server.

Chrome's cache errors share the ERR_CACHE_ prefix. Only a few ever reach an error page; most (such as -408, a checksum mismatch) are internal to the cache.

Error CodeChromium's definitionCommon Cause
ERR_CACHE_MISS (-400)The cache does not have the requested entryBack to a form's result page; cache-only loads
ERR_CACHE_READ_FAILURE (-401)Unable to read from the disk cacheA cache damaged by a crash or improper shutdown
ERR_CACHE_WRITE_FAILURE (-402)Unable to write to the disk cacheA full disk or a permissions problem

ERR_CACHE_READ_FAILURE shows the same "This site can't be loaded from the cache" page: clearing the cache (Fix 2) is the fix there. For ERR_CACHE_MISS, start with the form fixes above. A different Chrome error? See ERR_CONNECTION_REFUSED or ERR_NAME_NOT_RESOLVED.

Check Your HTTP Headers

Use DNS Robot's free HTTP Header Checker to inspect your server's Cache-Control headers and other response directives that affect browser caching.

Sources

  1. net_error_list.h (CACHE_MISS -400), Chromium
  2. localized_error.cc (the error pages for ERR_CACHE_MISS), Chromium
  3. RFC 9110 §15.4.4: 303 See Other, IETF
  4. WebSettings (setBlockNetworkLoads, LOAD_CACHE_ONLY), Android Developers

Frequently Asked Questions

What does ERR_CACHE_MISS mean?

Chrome needed a saved copy of a page and didn't have one. Usually you went Back to a page created by a form, and Chrome won't resend the form without asking. Chromium defines it as error -400, "The cache does not have the requested entry"; it isn't an HTTP or server error.

How do I fix ERR_CACHE_MISS in Chrome?

Press Reload and click Continue only if resending the form is harmless, like a search. For anything else, open the page again from the site's menu or address bar instead of going Back. If normal pages keep failing, clear Chrome's cached images and files.

What does "Confirm Form Resubmission" mean? Should I click Continue?

The page you're returning to was created by a form, and showing it again means sending that form again. Click Continue for searches and filters. For a payment, order, booking or post, click Cancel and check your order history or email first.

Why does ERR_CACHE_MISS appear when I press Back?

Chrome keeps a copy of form result pages so Back can show them. If the page told Chrome not to store it (Cache-Control: no-store) or the copy was cleared, the only way back is to resend the form, so Chrome stops and asks.

Is ERR_CACHE_MISS a virus or a security problem?

No. It's Chrome refusing to repeat a form submission on its own, which protects you from double payments or duplicate orders. Nothing is wrong with your computer or the website.

How do I fix ERR_CACHE_MISS on Android?

Update Chrome and Android System WebView in the Play Store, then clear the cache of the app that shows the error (Settings → Apps → the app → Storage & cache → Clear cache). If it keeps happening in one app, its developer has to fix it.

What causes net::ERR_CACHE_MISS in an Android WebView?

Usually a missing INTERNET permission: without it, Android blocks the WebView's network loads by default, so pages can only come from the cache. Add the permission to AndroidManifest.xml, and don't use the LOAD_CACHE_ONLY cache mode unless the page is already cached.

Why do I see net::ERR_CACHE_MISS in Chrome DevTools?

A request that was only allowed to use the cache found nothing, such as a Back navigation to a form result or a script that asked for a cached copy only. It's harmless on its own; it matters only if visitors see the error page.

How do developers prevent ERR_CACHE_MISS?

Use Post/Redirect/Get: after handling a form POST, reply with a 303 redirect to a GET page that shows the result. The last history entry is then a normal page that Back and Reload can load without resending anything.

Does ERR_CACHE_MISS happen in Edge and other browsers?

Edge, Brave and Opera use Chromium, so they show the same pages and code. Firefox shows "Document Expired", and Safari asks in a dialog whether to send the form again. The cause and the fixes are the same.

About the author

Shaik Vahid

Founder of DNS Robot. Vahid spent years in web hosting support fixing domains, DNS records, SSL certificates and email delivery for customers. He builds DNS Robot's tools and writes these guides from the errors people actually hit.

HTTP Header Checker

Response headers exactly as sent, with a Mozilla Observatory security grade