Erreur ERR_CACHE_MISS : pourquoi Chrome affiche ce message et comment le corriger
L’erreur ERR_CACHE_MISS fait partie des messages Chrome qui font le plus douter de soi. Elle tombe au pire moment : juste après l’envoi d’un formulaire, au retour arrière sur une page de commande, ou au rechargement d’un site qui fonctionnait parfaitement trois secondes plus tôt.
La réalité technique est plus simple qu’on ne le croit. ERR_CACHE_MISS n’est pas un code HTTP renvoyé par un serveur. C’est une erreur réseau interne au moteur Chromium, enregistrée sous le code -400 : le navigateur a cherché une entrée dans son cache local, et cette entrée était absente, illisible ou inutilisable dans le contexte de la requête.
Tout le reste – page cassée, formulaire bloqué, message « Confirm Form Resubmission » – vient du contexte : un Cache-Control mal posé, une requête POST rejouée, une extension trop intrusive, un Service Worker resté bloqué sur une ancienne version.
Ce guide prend le problème par le terrain, pas par la liste de correctifs recopiée d’un forum à l’autre. Cinq cas réels (tunnel de paiement, formulaire WordPress, WebView Android, poste d’entreprise filtré, extension de traduction), un tableau de diagnostic symptôme → cause probable → solution, dix correctifs classés par efficacité observée, et une section développeur qui traite la cause au lieu du symptôme.
Chrome reste le navigateur dominant – StatCounter le situe autour de 66 % du marché mondial – ce qui rend cette erreur mécaniquement fréquente.
En bref
- Ce que c’est : une erreur réseau côté client (moteur Chromium, code -400), pas un code HTTP, pas un virus.
- Les deux causes dominantes : un cache local corrompu et une resoumission de formulaire après un POST.
- Le correctif le plus rapide : rechargement forcé (
Ctrl + F5ouCmd + Shift + R), puis vidage ciblé du cache. - Le piège à éviter : cliquer sur « Continuer » après un paiement sans avoir vérifié que l’action n’a pas déjà été enregistrée.
- Côté site : le modèle Post/Redirect/Get avec un statut 303 supprime la majorité des cas récurrents.
- Côté développeur : l’onglet Network de Chrome DevTools et l’option Disable cache donnent le diagnostic en deux minutes.
Diagnostic express : le tableau symptôme → cause probable → solution à essayer
Avant d’entrer dans le détail, situez votre cas. Cette grille couvre la quasi-totalité des situations que nous avons rencontrées en support et en audit.
| Symptôme observé | Cause probable | Solution à essayer d’abord |
|---|---|---|
| L’erreur apparaît juste après l’envoi d’un formulaire | Resoumission d’une requête POST | Vérifier que l’action est enregistrée, puis recharger |
| Le message « Confirm Form Resubmission » remplace la page | Chrome rejoue la dernière requête POST | Ne pas valider en aveugle sur un paiement |
| ERR_CACHE_MISS sur un seul site | Cache local corrompu ou ressource périmée | Rechargement forcé, puis vidage du cache |
| ERR_CACHE_MISS sur plusieurs sites | Conflit d’extension, cache système, DNS | Navigation Privée, puis désactivation des extensions |
| L’erreur disparaît en Navigation Privée | Profil Chrome corrompu ou extension active | Réduire les extensions par dichotomie |
| L’erreur n’apparaît que sur votre propre site | En-têtes HTTP et redirections du serveur | Vérifier les réponses POST et le statut de redirection |
| L’erreur apparaît dans une application Android (WebView) | Cache applicatif ou Service Worker obsolète | Vider le cache de l’application, versionner les assets |
| L’erreur apparaît derrière un VPN ou un antivirus | Inspection HTTPS ou routage instable | Tester sans filtre réseau ni proxy |
| L’erreur apparaît uniquement pendant le développement | Cache DevTools, 304 mal gérés, Service Worker | Onglet Network et option Disable cache |
Ce tableau fonctionne comme un arbre de décision en une passe. Si votre cas n’y figure pas, le diagnostic rapide plus bas affine la lecture.
Qu’est-ce que l’erreur ERR_CACHE_MISS ?
L’erreur ERR_CACHE_MISS signifie que Chrome ne trouve pas dans son cache la donnée dont il a besoin pour servir la requête en cours. Soit l’entrée est absente, soit elle est devenue inutilisable, soit le navigateur doit confirmer une resoumission de formulaire avant de continuer.
Ce que signifie exactement le code Chromium -400
Chrome n’invente pas ce message : il hérite du moteur réseau Chromium, dont la liste officielle des erreurs associe ERR_CACHE_MISS au code -400, dans la même famille que les erreurs de lecture, d’écriture et de verrouillage du cache. Trois conséquences pratiques découlent de cette définition.
- Ce n’est pas un code HTTP : aucun serveur ne renvoie « -400 », et votre hébergeur n’a probablement rien à corriger de ce côté.
- L’erreur est locale au navigateur et au profil : deux personnes sur la même page peuvent avoir des comportements différents, ce qui explique la difficulté à reproduire le problème en équipe.
- C’est une erreur réseau, pas une erreur d’affichage : elle se déclenche au moment de la requête, avant même le rendu de la page.
Les quatre situations qui déclenchent ERR_CACHE_MISS
Dans la pratique, l’erreur apparaît dans quatre contextes bien distincts :
- Le rechargement d’une page dépendant d’une requête POST : Chrome ne peut pas rejouer la requête sans l’accord de l’utilisateur.
- Le retour arrière vers une page dont le contenu dépendait d’une donnée envoyée (formulaire, recherche, pagination dynamique).
- La navigation normale sur un site dont une ressource a été invalidée côté serveur sans que le cache local soit purgé (asset renommé, thème mis à jour, purge CDN partielle).
- Une application embarquée (WebView Android, application desktop basée sur Chromium) dont le Service Worker sert un manifeste ou un fichier HTML obsolète.
Les variantes du message à reconnaître
Le libellé exact varie selon la version de Chrome et le contexte d’appel :
ERR_CACHE_MISS(page d’erreur classique) ;net::ERR_CACHE_MISS(console DevTools ou WebView) ;- « Confirm Form Resubmission » / « Confirmer la resoumission du formulaire » ;
- « Cette page nécessite les informations que vous avez saisies précédemment ».
Ces quatre libellés décrivent la même mécanique. Si en revanche votre message est ERR_CONNECTION_RESET ou ERR_CONNECTION_TIMED_OUT, la cause est ailleurs : ce n’est plus un problème de cache mais un problème de connexion, qui se traite différemment.
Ce que ERR_CACHE_MISS n’est pas
Trois confusions reviennent en permanence.
- Ce n’est pas un virus. C’est un message d’état du navigateur. En revanche, si l’erreur apparaît avec des redirections suspectes, des fenêtres publicitaires ou des extensions inconnues, il faut auditer les extensions et lancer une analyse antivirus.
- Ce n’est pas une panne serveur. Un serveur en erreur renvoie un code HTTP (500, 502, 503), pas une erreur de cache côté client.
- Ce n’est pas un problème d’hébergement. Sauf si tous vos visiteurs signalent le même message : dans ce cas, ce sont les en-têtes du site qui sont en cause, et la section développeur plus bas vous concerne directement.
Pourquoi l’erreur ERR_CACHE_MISS apparaît-elle?
Six causes couvrent la quasi-totalité des signalements. Elles ne se diagnostiquent pas de la même façon, et les confondre fait perdre du temps.
Cache corrompu ou obsolète
La cause la plus fréquente reste un cache local défectueux. Chrome tente de servir une ressource depuis son cache, mais la donnée est incomplète, invalide ou ne correspond plus à la version publiée du site. Le scénario typique : un site met à jour son thème ou son JavaScript, l’ancien fichier reste en cache, et la page réclame une ressource qui n’existe plus sous cette référence.
Ce cas survient surtout après une mise à jour de site, un changement de thème, une session Chrome de plusieurs jours ou un conflit entre anciens fichiers et nouvelles ressources.
Resoumission d’un formulaire
Après l’envoi d’un formulaire, Chrome protège l’utilisateur : il refuse de rejouer automatiquement une requête POST. Un retour arrière, un rechargement ou une nouvelle tentative déclenche alors un avertissement, parfois couplé à ERR_CACHE_MISS.
La logique est saine – éviter le double commentaire, la double inscription, la double commande, le double paiement – mais le message est mal expliqué à l’écran.
Extensions Chrome conflictuelles
Les extensions qui interceptent les requêtes sont les premières suspectes : bloqueurs de publicité, modules de confidentialité, outils de capture, gestionnaires de scripts, VPN d’extension, extensions de traduction qui réécrivent le DOM et les appels réseau. Une extension qui ajoute ou retire des en-têtes de cache peut faire échouer une entrée locale sans raison apparente.
Version obsolète de Chrome
Chrome se met à jour automatiquement, mais une mise à jour peut rester en attente si le navigateur n’a pas été complètement fermé depuis longtemps. Or la gestion du cache, du protocole HTTP/2, HTTP/3 et des Service Workers évolue à chaque version. Une version ancienne sur un site moderne génère des incompatibilités qui se manifestent précisément sous cette forme.
Problème DNS, VPN, proxy ou antivirus
Un cache DNS obsolète, un proxy mal configuré, un VPN instable ou un antivirus qui inspecte le trafic HTTPS peuvent empêcher Chrome de récupérer les données attendues. Signal distinctif : l’erreur touche plusieurs sites, pas seulement une page précise, et disparaît en désactivant le filtre réseau.
Mauvaise gestion du cache côté site
C’est la cause la plus mal traitée par les guides concurrents, et c’est pourtant la seule qui se corrige définitivement. ERR_CACHE_MISS peut naître d’une page de confirmation servie directement après un POST, sans redirection, ou d’en-têtes Cache-Control incohérents entre le HTML, le CDN et les fichiers statiques. Dans ce cas, ce n’est pas l’utilisateur qu’il faut corriger : c’est le site.
ERR_CACHE_MISS face aux autres erreurs de cache de Chrome

Confondre ERR_CACHE_MISS avec ses voisines fait perdre un temps considérable, parce que le diagnostic change complètement d’une erreur à l’autre.
Le moteur Chromium distingue précisément l’absence d’une entrée, l’impossibilité de la lire, l’impossibilité de l’écrire et l’absence de résultat côté résolution de noms. Voici le tableau de correspondance.
| Erreur | Code Chromium | Ce qu’elle dit réellement | Réflexe utile |
|---|---|---|---|
| ERR_CACHE_MISS | -400 | L’entrée demandée est absente du cache | Recharger, puis vérifier méthode HTTP et en-têtes |
| ERR_CACHE_READ_FAILURE | -401 | L’entrée existe mais ne peut pas être lue (fichier corrompu, verrou) | Vider le cache du navigateur |
| ERR_CACHE_WRITE_FAILURE | -402 | Chrome n’arrive pas à écrire dans le cache (disque plein, droits) | Libérer de l’espace, contrôler le profil |
| ERR_CACHE_OPERATION_NOT_SUPPORTED | -403 | L’opération de cache demandée n’est pas prise en charge | Mettre le navigateur à jour, vérifier le contexte d’appel |
| ERR_DNS_CACHE_MISS | famille -800 | Le résultat DNS n’était pas disponible localement | Vider le cache DNS, tester chrome://net-internals/#dns |
| ERR_EMPTY_RESPONSE | -324 | Le serveur a fermé la connexion sans rien envoyer | Vérifier serveur, CDN et pare-feu applicatif |
| ERR_CONTENT_LENGTH_MISMATCH | -354 | La taille annoncée ne correspond pas au contenu reçu | Contrôler compression et proxy intermédiaire |
| ERR_INCOMPLETE_CHUNKED_ENCODING | -365 | La réponse transférée par blocs s’est interrompue trop tôt | Vérifier le transfert, le CDN et le serveur amont |
| 304 Not Modified | (pas une erreur) | Le cache est validé et la réponse est réutilisée | Rien à corriger : comportement normal |
Ne pas confondre ERR_CACHE_MISS et ERR_DNS_CACHE_MISS
Les deux noms se ressemblent, l’objet n’a rien à voir. ERR_CACHE_MISS concerne le cache HTTP (pages, images, scripts). ERR_DNS_CACHE_MISS concerne la résolution de noms : le domaine n’a pas été converti en adresse IP à partir des sources locales.
Symptôme qui départage les deux : dans le second cas, même les autres onglets du même domaine échouent, et le message change après un simple redémarrage de la box.
ERR_CACHE_MISS comparé aux erreurs de transfert
ERR_EMPTY_RESPONSE, ERR_CONTENT_LENGTH_MISMATCH et ERR_INCOMPLETE_CHUNKED_ENCODING pointent toutes vers une réponse serveur incomplète, souvent derrière un CDN, un WAF ou un module de compression. Le cache local n’est pas en cause. Conséquence opérationnelle : vider le cache de l’utilisateur ne servira à rien, il faut regarder côté infrastructure.
Pourquoi cette distinction change le diagnostic
Un réflexe simple évite l’errance : déterminez d’abord qui est fautif. Erreur de cache locale → côté navigateur, correctifs 1 à 12 ci-dessous. Erreur de transfert ou de DNS → côté réseau ou infrastructure. Erreur intermittente sur votre propre site uniquement → côté application, section développeur. Cette seule question élimine la moitié des pistes inutiles.
Diagnostic rapide : quelle solution essayer en premier ?
La règle de base tient en une phrase : si ERR_CACHE_MISS apparaît sur un seul site, commencez par le cache local ; si elle apparaît partout, regardez Chrome, les extensions, le DNS et le réseau.
Erreur ERR_CACHE_MISS dans Chrome
|
v
Avez-vous soumis un formulaire juste avant ?
/ \
OUI NON
| |
Vérifier si l'action est Rechargement forcé (Ctrl + F5)
déjà enregistrée |
| v
Ne pas renvoyer un paiement Vider le cache, puis Navigation Privée
sans vérification |
| v
Développeur ? Extensions, mise à jour Chrome
| |
PRG + 303 + Cache-Control DNS, VPN, proxy, antivirus, réseau
| |
v v
Tester dans DevTools Autre profil / autre navigateur
| Contexte observé | Cause la plus probable | Première action |
|---|---|---|
| Après un formulaire | Requête POST non redirigée | Vérifier l’action, puis recharger en GET |
| Sur un seul site, chez vous uniquement | Cache local ou ressource périmée | Rechargement forcé et vidage du cache |
| Sur tous les sites | Réseau, DNS, extension ou antivirus | Navigation Privée, puis filtre réseau |
| Uniquement avec une extension active | Conflit d’extension | Désactivation par dichotomie |
| Uniquement en développement | Cache DevTools, Service Worker, en-têtes | Network + Disable cache + Application |
| Uniquement derrière un VPN | Routage ou filtrage | Test sans VPN, changement de réseau |
Comment réparer ERR_CACHE_MISS : 12 solutions classées par ordre d’efficacité
Les correctifs ci-dessous sont classés du plus rapide au plus technique. Dans les cas que nous avons traités, les cinq premiers règlent environ 8 situations sur 10 ; les suivants visent les profils corrompus, les réseaux filtrés et les applications web modernes.
1. Recharger la page
Un échec temporaire de communication suffit à faire tomber une entrée de cache. Utilisez Ctrl + R sur Windows et Linux, Cmd + R sur macOS. Nuance importante : si vous venez de soumettre un formulaire, ne rechargez pas à l’aveugle. Pour un contact ou un commentaire, le pire scénario est un doublon. Pour un paiement, une commande ou une inscription, vérifiez d’abord que l’action est passée.
2. Faire un rechargement forcé
Un rechargement classique peut encore servir des ressources depuis le cache local. Le rechargement forcé impose au navigateur de repasser par le réseau : Ctrl + F5, Shift + F5 sur Windows et Linux, Cmd + Shift + R sur macOS.
Avec DevTools ouverts, un clic droit sur le bouton d’actualisation donne accès à Empty Cache and Hard Reload, qui vide le cache de la page puis recharge toutes les ressources depuis le réseau – la manœuvre la plus proche d’une première visite.
3. Redémarrer complètement Chrome
Fermer une fenêtre n’est pas quitter Chrome. Sur Windows, vérifiez le gestionnaire des tâches : des processus résiduels et des applications d’arrière-plan gardent le profil ouvert. Sur macOS, utilisez Quitter Google Chrome (Cmd + Q).
Deux effets attendus : les mises à jour en attente s’appliquent, et l’état interne du cache disque se réinitialise proprement.
4. Nettoyer le cache du navigateur (sans tout casser)
Ouvrez chrome://settings/clearBrowserData ou passez par le menu (⋮) → Plus d’outils → Effacer les données de navigation. Ne cochez pas tout par réflexe : le bon périmètre dépend du problème.
| Donnée à effacer | À cocher pour ERR_CACHE_MISS | Effet de bord |
|---|---|---|
| Images et fichiers en cache | Oui, en priorité | Premier rechargement plus lent |
| Cookies et données de site | Seulement si l’erreur persiste | Déconnexion de tous les sites |
| Historique de navigation | Non nécessaire | Perte de l’historique local |
| Mots de passe enregistrés | Jamais dans ce diagnostic | Aucun bénéfice attendu |
Choisissez la période Toutes les périodes pour le cache, puis rechargez la page. Enregistrez vos mots de passe et vos onglets épinglés avant si vous devez élargir le périmètre.
5. Tester en navigation privée
Ouvrez une fenêtre privée avec Ctrl + Shift + N (Windows, Linux) ou Cmd + Shift + N (macOS). C’est le test de discrimination le plus rapide du lot : si le site fonctionne en Navigation Privée, la cause est dans votre profil (cache, cookies, extension), pas sur le serveur. Cette information vaut à elle seule plusieurs minutes de recherche.
6. Désactiver les extensions Chrome une par une
Rendez-vous sur chrome://extensions/ et procédez par dichotomie : désactivez la moitié des extensions, testez, réduisez à un quart, puis à une seule. C’est plus rapide que le test extension par extension et tout aussi fiable.
Les coupables les plus fréquents dans nos relevés : bloqueurs de publicité, modules de confidentialité, extensions de traduction, outils de capture et VPN intégrés.
7. Réinitialiser les paramètres du navigateur
Paramètres → Réinitialiser et nettoyer → Restaurer les paramètres à leurs valeurs par défaut. Ce geste remet à zéro le moteur de recherche, la page d’accueil, les onglets épinglés et désactive les extensions. Il ne supprime ni les favoris, ni les mots de passe, ni l’historique. À réserver aux cas où l’erreur persiste après toutes les étapes précédentes.
8. Mettre Chrome à jour
Passez par chrome://settings/help ou par le menu → Aide → À propos de Google Chrome. Le navigateur vérifie et installe la mise à jour automatiquement, puis demande un redémarrage. Beaucoup de signalements ERR_CACHE_MISS sur des applications web modernes disparaissent simplement après cette étape, quand la version en place ne négocie pas correctement HTTP/2 ou HTTP/3.
9. Vider le cache DNS
Le cache du navigateur n’est pas le seul en jeu. Sur Windows : ipconfig /flushdns. Sur macOS : sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder. Dans Chrome, ouvrez chrome://net-internals/#dns et lancez le nettoyage du cache d’hôtes. Méthode utile quand l’erreur touche plusieurs sites ou suit un changement de réseau.
10. Vérifier VPN, proxy, antivirus et paramètres réseau
Désactivez temporairement le VPN, le proxy, l’antivirus avec inspection HTTPS, le pare-feu tiers et les extensions de sécurité réseau. Puis rechargez. Si l’erreur disparaît, la cause est un filtrage ou un routage. Complétez avec : redémarrage de la box, changement de réseau Wi-Fi, test en données mobiles, contrôle des paramètres proxy du système.
11. Tester un autre profil Chrome ou un autre navigateur
Créez un profil vierge via chrome://settings/manageProfile et reproduisez le problème. Si l’erreur disparaît, votre profil principal est corrompu : la migration des favoris et des mots de passe vaut alors mieux qu’une réparation à l’aveugle. Si l’erreur persiste sur deux navigateurs différents, elle n’est plus locale : elle vient du réseau ou du site. C’est précisément à ce stade qu’un développeur doit prendre le relais.
12. Cas avancé : Service Worker et cache d’application
Sur une Progressive Web App ou un site qui utilise un Service Worker, une ancienne version du script peut servir un HTML obsolète qui réclame des ressources renommées. Le diagnostic passe par DevTools → onglet Application → Service Workers : utilisez Unregister pour désenregistrer, puis Storage → Clear site data pour repartir d’un état propre.
Si le problème revient à chaque déploiement, activez Update on reload pendant le développement, et versionnez systématiquement les fichiers servis (app.[hash].js).
| Solution | Effort | À qui elle s’adresse | Efficacité observée |
|---|---|---|---|
| 1. Recharger | Très faible | Tous | Règle les échecs temporaires |
| 2. Rechargement forcé | Très faible | Tous | Forte sur les assets périmés |
| 3. Redémarrer Chrome | Faible | Tous | Moyenne, applique les mises à jour |
| 4. Vider le cache | Faible | Tous | Forte sur cache corrompu |
| 5. Navigation Privée | Très faible | Tous | Diagnostic, pas correctif |
| 6. Extensions | Moyen | Tous | Forte si conflit d’extension |
| 7. Réinitialiser | Moyen | Profils abîmés | Moyenne, dernier recours |
| 8. Mise à jour | Faible | Version ancienne | Moyenne à forte |
| 9. Cache DNS | Moyen | Erreurs multiples | Forte sur cas réseau |
| 10. VPN / proxy / antivirus | Faible | Réseaux filtrés | Forte si filtrage actif |
| 11. Autre profil / navigateur | Faible | Tous | Diagnostic décisif |
| 12. Service Worker | Élevé | Développeurs | Forte sur PWA |
ERR_CACHE_MISS et « Confirm Form Resubmission » : faut-il cliquer ?

Si ERR_CACHE_MISS apparaît après un formulaire, ne cliquez pas sur « Continuer » par réflexe. Vérifiez d’abord si l’action a déjà été enregistrée, surtout pour un paiement, une commande ou une inscription. Ce message accompagne souvent la fenêtre Confirm Form Resubmission.
Ce que Chrome fait vraiment quand il demande de confirmer
Chrome compare la méthode HTTP de la page demandée à celle de la réponse mise en cache. Une page obtenue par POST n’est pas rejouable telle quelle : la rejouer pourrait créer une action supplémentaire (un second e-mail, une seconde commande, un second débit).
Le navigateur refuse donc silencieusement de restaurer l’état précédent et prévient l’utilisateur. C’est une protection, pas un bug – le libellé est simplement illisible pour un non-technicien.
Check-list avant de cliquer sur Continuer
- Avez-vous reçu un e-mail de confirmation ?
- L’action apparaît-elle dans votre espace client (commande, réservation, abonnement) ?
- Le paiement est-il déjà visible sur votre relevé ou dans l’application bancaire ?
- Le site affiche-t-il un message indiquant que la demande a été traitée ?
- Pouvez-vous naviguer vers la page d’accueil plutôt que de revenir en arrière ?
Une seule réponse affirmative suffit dans la plupart des cas : l’action est passée, il ne faut rien renvoyer.
Les trois cas où le message est bénin
Tous les formulaires ne méritent pas la prudence absolue. Un formulaire de contact, un commentaire de blog ou une inscription à une infolettre peuvent être rejoués sans risque réel : au pire, un doublon apparaît côté serveur. En revanche, dès qu’une transaction financière ou une donnée personnelle est concernée, le doute doit être levé avant de cliquer.
Que faire selon le type de formulaire
| Type de formulaire | Risque réel si vous cliquez sur Continuer | Réflexe recommandé |
|---|---|---|
| Contact, commentaire, infolettre | Doublon d’e-mail ou de commentaire | Continuer sans crainte |
| Création de compte | Compte ou e-mail d’activation en double | Vérifier la boîte mail d’abord |
| Commande, réservation | Commande en double, stock réservé deux fois | Consulter l’espace client avant |
| Paiement | Débit en double | Ne pas continuer, vérifier la confirmation |
| Modification de profil | Écrasement de données récentes | Recharger la page en GET |
Conseils pour les développeurs : comment prévenir l’erreur ERR_CACHE_MISS
La partie qui compte vraiment : supprimer la cause. Sur les sites que nous auditons, la quasi-totalité des ERR_CACHE_MISS signalées par plusieurs utilisateurs à la fois viennent de quatre erreurs de conception – un POST non redirigé, des en-têtes de cache contradictoires, une absence de stratégie de versioning, ou un Service Worker jamais invalidé.
Utiliser Post/Redirect/Get après les formulaires
Après un POST, ne renvoyez jamais directement la page HTML finale. Traitez la soumission, puis redirigez vers une page de confirmation récupérée en GET. Le modèle Post/Redirect/Get est la parade standard : la dernière entrée de l’historique devient une page GET, et un rechargement ne rejoue plus la soumission.
Le statut 303 See Other est le plus adapté après un POST : il indique explicitement au navigateur de récupérer la cible avec la méthode GET.
POST /commande HTTP/1.1
Cache-Control: no-store
HTTP/1.1 303 See Other
Location: /commande/confirmation/8F21
Distinction à connaître : 302 et 307 préservent la méthode d’origine dans certains cas, 303 impose le passage en GET. Pour une redirection post-formulaire, c’est 303 qu’il faut viser.
Corriger l’usage de Cache-Control
La recommandation « no-cache, no-store, must-revalidate » circule partout et mélange trois notions différentes. Selon la documentation de référence, no-cache ne signifie pas « ne jamais stocker » : il signifie « ne pas réutiliser sans revalidation ». Pour empêcher le stockage, la directive utile est no-store.
| En-tête | Ce qu’il fait réellement | Usage recommandé |
|---|---|---|
Cache-Control: no-store | Interdit tout stockage, local comme intermédiaire | Pages de paiement, confirmations sensibles |
Cache-Control: no-cache | Stockage autorisé, revalidation obligatoire avant usage | HTML dynamique, pages personnalisées |
Cache-Control: private | Interdit le cache partagé (CDN, proxy) | Contenu authentifié par utilisateur |
Cache-Control: public, max-age=31536000, immutable | Cache long pour ressources versionnées | JS, CSS et polices avec empreinte de version |
Cache-Control: must-revalidate | Interdit l’usage d’une copie périmée hors ligne | Réponses à durée de vie courte |
Vary: Cookie | Sépare les variantes de réponse par cookie de session | Contenu personnalisé servi par un CDN |
L’objectif n’est jamais de désactiver le cache partout : un bon cache améliore la performance et le score Core Web Vitals. Il s’agit de distinguer les ressources statiques, les pages personnalisées, les réponses de formulaire et les pages sensibles.
Tester avec Chrome DevTools
L’onglet Network donne la lecture complète : méthode de chaque requête (GET ou POST), code de statut (200, 303, 304, 307, 308), présence et valeur de Cache-Control, redirections enchaînées, ressources servies depuis le cache, et activation éventuelle d’un Service Worker.
Deux options font gagner du temps : Disable cache (à garder ouverte pendant les tests) et Empty Cache and Hard Reload pour simuler une première visite. Un test utile : si l’erreur n’apparaît qu’avec le cache activé, la réponse du serveur est en cause ; si elle apparaît aussi avec le cache désactivé, cherchez plutôt du côté du réseau ou du Service Worker.
Sécuriser les formulaires : jeton CSRF et clé d’idempotence
Les jetons CSRF restent nécessaires pour empêcher les soumissions non autorisées, mais ils ne protègent pas contre une resoumission accidentelle.
Pour les actions sensibles – paiement, réservation, commande, création de compte, appel d’API critique – ajoutez une clé d’idempotence : un identifiant unique par tentative, que le serveur reconnaît. Si le navigateur renvoie la même requête, le serveur retourne le résultat déjà produit au lieu de créer un doublon. C’est la différence entre une protection affichée et une protection réelle.
Cas WordPress, Elementor et plugins de cache
Sur WordPress, la combinaison d’un plugin de cache de pages, d’un constructeur visuel et d’un CDN produit régulièrement des états incohérents : une page mise en cache contient un jeton de formulaire expiré, ou un fragment généré par un constructeur référence un fichier CSS supprimé.
Méthode de test qui fonctionne : purgez le cache du plugin, videz le cache du CDN, ouvrez une fenêtre privée et soumettez le formulaire. Si l’erreur disparaît, excluez la page de formulaire du cache de pages et servez-la en no-store.
Sur les formulaires soumis en AJAX, vérifiez également le nonce et le type de réponse attendu : une réponse HTML servie là où le script attend du JSON déclenche des comportements de cache imprévisibles.
Retours du terrain : 5 cas réels de ERR_CACHE_MISS et ce qui les a résolus

Les listes génériques ne disent pas ce qui se passe vraiment. Voici cinq situations rencontrées lors de tests et d’audits, avec la cause réelle et le correctif qui a fonctionné.
Cas 1 : formulaire de contact WordPress derrière un cache de pages
Symptôme : ERR_CACHE_MISS et « Confirm Form Resubmission » chez un visiteur sur trois, jamais en Navigation Privée. Cause : la page de contact était mise en cache par le plugin de pages, avec un nonce de formulaire figé, et le traitement du POST renvoyait directement la page de résultat.
Correctif : page de formulaire exclue du cache, redirection 303 vers une page de remerciement en GET. Plus aucun signalement après cette correction.
Cas 2 : paiement rejoué depuis l’historique
Symptôme : ERR_CACHE_MISS au retour arrière après un paiement accepté. Cause : un tunnel de commande qui affichait directement la réponse du POST. Correctif Post/Redirect/Get avec statut 303 et clé d’idempotence côté passerelle de paiement. Le client peut toujours revenir en arrière : la clé empêche le second débit.
Cas 3 : application Android en WebView
Symptôme : ERR_CACHE_MISS au lancement d’une application hybride, uniquement après une mise à jour. Cause : un Service Worker servait un document HTML obsolète référençant des fichiers renommés. Correctif : invalidation du cache côté client, versionnement des assets, purge du Service Worker au déploiement. Visible dans DevTools → Application → Service Workers.
Cas 4 : poste d’entreprise avec inspection HTTPS
Symptôme : erreur sur plusieurs sites, jamais sur le réseau mobile. Cause : un antivirus d’entreprise qui déchiffrait et réécrivait les réponses, invalidant les entrées de cache. Correctif : exclusion du domaine dans la console de sécurité, plus test de confirmation sans filtre pour isoler la cause.
Cas 5 : extension de traduction qui réécrit les requêtes
Symptôme : erreur uniquement pour un utilisateur équipé d’une extension de traduction automatique. Cause : l’extension modifiait les requêtes et les en-têtes, y compris ceux du cache. Correctif : désactivation de l’extension, puis reproduction impossible. Conclusion utile : quand une seule personne signale l’erreur, l’extension est la première piste, pas le site.
Notre verdict : l’erreur vient-elle de Chrome ou du site ?
Notre position, après avoir traité ces cas : la majorité des ERR_CACHE_MISS récurrentes ne sont pas des bugs de navigateur, mais des formulaires et des politiques de cache mal conçus. Le navigateur se contente d’appliquer les règles. Quand plusieurs visiteurs voient la même erreur sur la même page, la cause est presque toujours côté site.
| Origine probable | Part observée dans nos cas | Comment le confirmer |
|---|---|---|
| Application ou en-têtes du site | Majoritaire | Reproduction en fenêtre privée sur deux navigateurs |
| Poste et profil utilisateur | Fréquente | Disparition en Navigation Privée ou sur un autre profil |
| Extension ou logiciel de sécurité | Fréquente | Désactivation par dichotomie |
| Réseau, VPN, DNS | Occasionnelle | Test sur un autre réseau et en données mobiles |
| Navigateur ou système obsolète | Occasionnelle | Mise à jour puis nouveau test |
Le corollaire est simple. Côté utilisateur, les correctifs 1 à 5 suffisent presque toujours. Côté éditeur, aucune liste de solutions ne remplacera une redirection propre après un formulaire.
FAQ sur l’erreur ERR_CACHE_MISS
ERR_CACHE_MISS est-il un virus ?
Non. C’est un message d’erreur du navigateur lié au cache ou à la resoumission d’un formulaire. Vérifiez tout de même vos extensions si l’erreur s’accompagne de redirections suspectes ou de publicités intrusives.
Pourquoi Chrome affiche-t-il ERR_CACHE_MISS après un formulaire ?
Chrome refuse de rejouer automatiquement une requête POST déjà envoyée. Un retour arrière ou un rechargement déclenche alors l’avertissement, pour éviter un doublon d’inscription, de commande ou de paiement.
Est-ce dangereux de cliquer sur « Continuer » après Confirm Form Resubmission ?
Cela dépend de l’enjeu. Pour un contact ou un commentaire, le risque se limite à un doublon. Pour un paiement, une commande ou une réservation, vérifiez d’abord que l’action a été enregistrée avant de continuer.
Comment corriger net::ERR_CACHE_MISS dans DevTools ?
Ouvrez l’onglet Network, activez Disable cache, puis lancez un Empty Cache and Hard Reload. Contrôlez la méthode (GET ou POST), le code de statut, les en-têtes Cache-Control et les redirections de la requête fautive.
L’erreur vient-elle de mon site ou de mon ordinateur ?
Testez en Navigation Privée et sur un second navigateur. Si l’erreur disparaît, elle vient de votre profil. Si elle apparaît sur les deux, avec le même scénario, la cause est côté site ou réseau.
Vider le cache supprime-t-il mes mots de passe et mes sessions ?
Effacer uniquement « Images et fichiers en cache » ne supprime pas les mots de passe. En revanche, effacer « Cookies et données de site » vous déconnecte de la plupart de vos services : c’est le prix à payer si le cache seul ne suffit pas.
Pourquoi ERR_CACHE_MISS revient-elle après chaque vidage de cache ?
Parce que la cause n’est pas locale. Une resoumission de formulaire, un Service Worker obsolète ou un en-tête Cache-Control contradictoire reproduiront l’erreur indéfiniment tant que le code du site n’aura pas été corrigé.
ERR_CACHE_MISS existe-t-elle sur Firefox, Edge et Safari ?
Le message exact est propre à Chromium, donc présent sur Chrome, Edge, Brave, Opera et les WebView Android. Firefox, Safari et leurs dérivés affichent des messages équivalents pour la même situation de resoumission de formulaire.
ERR_CACHE_MISS apparaît dans mon application Android (WebView), que faire ?
Videz le cache de l’application, puis vérifiez la version du Service Worker. Le plus souvent, une mise à jour a servi un document en cache qui référence des fichiers renommés : le versionnement des assets règle le problème.
Combien de temps faut-il pour que l’erreur disparaisse ?
Un rechargement forcé ou un vidage du cache agit immédiatement. Après une correction côté serveur, comptez le temps de propagation du CDN et le cycle de vie du Service Worker : de quelques minutes à vingt-quatre heures.
ERR_CACHE_MISS derrière Cloudflare ou un autre CDN ?
Cela arrive. Une purge partielle du CDN peut laisser des références de ressources obsolètes dans les pages servies. Purgez l’intégralité du cache du CDN, puis vérifiez la cohérence des en-têtes entre l’origine et le bord du réseau.
Peut-on corriger ERR_CACHE_MISS sans vider tout le cache ?
Oui. Le rechargement forcé vide le cache de la seule page concernée. Sur DevTools, l’option Empty Cache and Hard Reload agit également page par page, ce qui évite de déconnecter tous vos autres onglets.
Sources utiles et références vérifiées
- Liste officielle des erreurs réseau du moteur Chromium, dont
ERR_CACHE_MISS(code -400) : chromium.googlesource.com/net/base/net_error_list.h - Implémentation du cache HTTP dans Chromium : chromium.googlesource.com/net/http/http_cache.h
- Directives de mise en cache, MDN (français) : developer.mozilla.org/Cache-Control
- Guide du cache HTTP, MDN (français) : developer.mozilla.org/Guides/Caching
- Statut 303 See Other, MDN (français) : developer.mozilla.org/HTTP/Status/303
- Bonnes pratiques de cache HTTP : web.dev/articles/http-cache
- Norme HTTP Caching (RFC 9111) : rfc-editor.org/rfc/rfc9111.html
- Effacer le cache et les cookies dans Chrome, aide Google : support.google.com/chrome/answer/2392709
- Mettre à jour Google Chrome, aide Google : support.google.com/chrome/answer/95414
- Référence du panneau Network de Chrome DevTools : developer.chrome.com/docs/devtools/network/reference
- Part de marché des navigateurs, StatCounter : gs.statcounter.com/browser-market-share
- Discussion technique historique sur ERR_CACHE_MISS : stackoverflow.com/questions/26515991
Conclusion
L’erreur ERR_CACHE_MISS est mal nommée, et c’est ce qui la rend si déroutante. Elle ne dit pas « votre site est cassé » ni « votre cache est vide » : elle dit que Chrome n’a pas trouvé dans son cache une donnée qu’il attendait, et qu’il refuse de rejouer une requête POST sans votre accord. Une fois cette mécanique comprise, le diagnostic devient beaucoup plus rapide.
Pour un utilisateur, l’ordre d’attaque est simple : rechargement forcé, vidage ciblé du cache, Navigation Privée, puis extensions et mise à jour. Dans la majorité des cas, l’erreur disparaît avant la cinquième étape.
Pour un développeur ou un éditeur, la vraie question est ailleurs : si plusieurs visiteurs voient la même erreur sur la même page, le navigateur n’est pas coupable. Il faut une redirection Post/Redirect/Get avec un statut 303, des en-têtes Cache-Control cohérents entre l’origine et le CDN, un versionnement systématique des assets et une stratégie d’invalidation claire pour les Service Workers. C’est cette correction-là qui supprime le problème, au lieu de le reporter sur l’utilisateur.
Un dernier point de méthode : notez la méthode HTTP, le code de statut et les en-têtes de la requête fautive avant de modifier quoi que ce soit. Un signalement ERR_CACHE_MISS accompagné de ces trois éléments se corrige en quelques minutes ; sans eux, il se transforme en échange de messages stérile.
Note de transparence éditoriale
Ce guide s’appuie sur trois types de sources, et nous préférons le dire clairement.
- Documentation technique officielle : la liste des erreurs réseau du moteur Chromium pour le code -400 et sa famille, la documentation de référence sur
Cache-Control, la spécification HTTP Caching et la référence du panneau Network de Chrome DevTools. Toutes les références sont listées dans la section « Sources utiles » et vérifiables en un clic. - Tests et cas réels : les cinq situations décrites dans la section « Retours du terrain » proviennent de tests menés sur des sites WordPress, un tunnel de paiement, une application Android en WebView et des postes d’entreprise filtrés. Les libellés de champs et de menus correspondent aux versions récentes de Chrome sur Windows et macOS.
- Limites : la liste des codes d’erreur du moteur évolue à chaque version ; les codes indiqués correspondent à la documentation publique la plus récente consultée lors de la rédaction. Les parts relatives du tableau de verdict sont des ordres de grandeur issus de nos observations, pas une mesure statistique sur un échantillon représentatif.
Divulgation d’intérêt : CritiquePlus monétise des prestations d’accompagnement auprès d’éditeurs d’outils numériques (tests, visibilité SEO, audit produit). Aucun éditeur n’est intervenu dans la rédaction de ce guide, et aucun lien commercial ne conditionne les correctifs recommandés ici. Les recommandations sont établies à partir de la documentation du moteur Chromium et de nos propres reproductions de cas.

