Le site du débrouillardle site du débrouillard
Programmation et automatisation

Un push réussi ne veut pas dire que ton site est à jour

Un développeur t'annonce que le code est en ligne. Il y croit lui-même. Et pendant ce temps, ton site continue de montrer une version vieille de plusieurs heures.

16 octobre 2026 · 8 min de lecture

Dans cet article

Tu diriges une petite structure. Un soir, ton développeur t'écrit : "c'est poussé, c'est en ligne." Tu te dis que le problème est réglé, que les clients voient la nouvelle page, le nouveau tarif, la nouvelle fonctionnalité que tu attendais depuis trois semaines. Tu passes à autre chose.

Sauf que ce n'est pas toujours vrai. Il existe un écart, souvent invisible pour toi, entre "le code est parti" et "le code tourne vraiment sur le site." Et dans cet écart, un site peut mentir pendant des heures sans que personne ne s'en aperçoive, ni toi, ni ton développeur, ni même les visiteurs. C'est exactement ce qui s'est produit un jour d'octobre, et ça vaut la peine de comprendre pourquoi, parce que ça peut t'arriver aussi.

Pousser n'est pas livrer : deux gestes qu'on confond

Quand un développeur "pousse" du code, il envoie ses modifications vers un dépôt central. C'est un geste technique précis, qui dit seulement : "j'ai transmis mon travail." Ça ne dit rien sur ce qui se passe ensuite.

Ce qui se passe ensuite, c'est qu'une machine prend ce code et tente de construire le site à partir de lui. Cette étape s'appelle le déploiement. Et cette machine peut refuser. Elle peut tomber sur une erreur, s'arrêter en plein milieu, et ne jamais produire la nouvelle version du site. Pendant ce temps, l'ancienne version continue de tourner, parce qu'un site ne s'efface pas tout seul en attendant mieux.

Beaucoup de porteurs de projet ne connaissent que la première étape. Ils entendent "c'est poussé" et comprennent "c'est livré." C'est comme confondre l'envoi d'un document à l'imprimerie avec le fait de tenir le document imprimé entre les mains. L'imprimerie peut recevoir ton fichier, le regarder, et le refuser parce qu'une page est mal formatée. Elle ne t'appelle pas forcément pour te le dire. Toi, tu attends ton tirage.

La conséquence pratique est simple à énoncer, moins simple à faire respecter : ne jamais annoncer une mise en ligne sur la seule foi d'un push réussi. Demande systématiquement si le déploiement est "prêt", pas seulement "envoyé." Ce sont deux états différents, et seule la deuxième question a une réponse qui t'intéresse vraiment.

Le jour où le site a servi une version vieille de cinq heures

Le 9 octobre 2026, trois déploiements consécutifs ont été refusés. Aucune alerte n'est partie. Pas de courriel, pas de notification, rien qui aurait pu attirer l'attention de l'équipe.

Du code avait été poussé. Le message confirmait que l'envoi s'était bien passé. Une annonce de livraison avait même été faite. Et pendant une demi-heure, le site a continué de servir une version vieille de cinq heures, sans qu'aucune page d'erreur ne s'affiche pour les visiteurs. De l'extérieur, tout semblait normal. C'est seulement en allant consulter les journaux de l'hébergeur, ces fichiers techniques qui enregistrent chaque tentative de déploiement, que le problème est apparu : trois tentatives de suite en échec.

Ce détail compte autant que l'incident lui-même. Un site qui ne montre aucune erreur n'est pas forcément un site qui va bien. Il peut très bien être en train d'échouer silencieusement, pendant que tout le monde, y compris l'équipe qui a poussé le code, croit que tout s'est bien passé. L'absence de signal n'est pas une preuve de bon fonctionnement, c'est parfois juste l'absence de système pour faire remonter le signal.

Pour toi qui diriges la structure, la conséquence pratique est précise : exige de ton équipe un canal où les échecs de déploiement remontent automatiquement, par courriel, par message, par n'importe quel moyen qui ne dépend pas de quelqu'un qui pense à aller vérifier. Un déploiement qui échoue doit faire du bruit. S'il n'en fait pas, c'est une faille à corriger avant même de penser à la prochaine mise en ligne.

La cause : construire le site en interrogeant une base qui n'est pas prête

Pourquoi ce déploiement a-t-il échoué trois fois de suite ? Beaucoup de sites modernes ne se contentent pas d'afficher des pages toutes faites. Ils les "prérendent", c'est-à-dire qu'ils les construisent au moment du déploiement, et pour ça, ils interrogent la base de données qui contient les informations du site.

Dans ce cas précis, le code fraîchement poussé demandait une information précise, une colonne de la base de données, qui n'existait pas encore. Pourquoi ? Parce que la mise à jour censée créer cette colonne, ce qu'on appelle une migration, n'avait pas encore été appliquée sur la base. Le code arrivait avant la base. La base répondait, logiquement, que cette information n'existait pas. La construction du site s'arrêtait là, net.

C'est comme vouloir remplir une case d'un formulaire administratif avant même que cette case existe sur le formulaire. L'agent au guichet ne va pas inventer une case qui n'est pas prévue. Il refuse le dossier, et il ne te doit pas forcément une explication détaillée sur-le-champ.

La règle qui se dégage de cet incident est générale, pas propre à ce site en particulier. La mise à jour de la base de données doit toujours arriver avant le code qui s'appuie sur elle, jamais dans l'autre sens. Si, pour une raison ou une autre, l'ordre inverse est inévitable, alors le code doit être écrit pour tolérer l'absence temporaire de cette information, plutôt que de s'arrêter dès qu'elle manque. C'est un point à faire comprendre à ton équipe technique, même si tu ne touches pas toi-même au code : l'ordre des opérations n'est pas un détail, c'est souvent la cause exacte des pannes invisibles.

Pourquoi un test qui marche sur l'ordinateur du développeur ne prouve rien

C'est le genre d'erreur qui se répète, et elle mérite d'être nommée clairement. Le développeur avait testé son code en local, sur sa propre machine, avant de le pousser. Et en local, ça fonctionnait.

Pourquoi ça fonctionnait en local et pas sur le vrai site ? Parce que, sur l'ordinateur du développeur, le fichier qui contient les réglages de connexion à la base de données peut tout simplement ne pas porter les bonnes informations pour se connecter à la vraie base. Dans ce cas, le système de prérendu se rabat sur des données de démonstration, des informations factices qui servent uniquement à tester l'affichage. Ces données de démonstration n'ont pas besoin de la nouvelle colonne pour exister, donc le test passe sans accroc. Le développeur voit un succès, pousse son code en confiance, et découvre le problème seulement quand la vraie base, avec ses vraies contraintes, entre en jeu.

C'est exactement ce qui s'était produit ce jour-là. Le piège n'est pas une négligence du développeur, c'est une différence d'environnement qui donne une fausse impression de sécurité. "Ça marche chez moi" n'a jamais été une preuve que ça marchera ailleurs, et c'est particulièrement vrai dès que la base de données réelle entre dans l'équation.

Pour toi, la conséquence pratique est de ne jamais accepter "ça a été testé" comme une garantie suffisante quand une mise à jour touche la structure de la base de données. Demande explicitement si le test a été fait contre une copie fidèle de la vraie base, ou contre des données factices. La différence entre les deux peut valoir une demi-heure de site figé, ou pire.

Le réflexe à prendre après chaque push qui touche un schéma

Tout ce qui précède débouche sur un geste concret, pas compliqué à demander, mais souvent absent des habitudes. Après tout push qui touche la structure de la base de données, quelqu'un doit vérifier que le déploiement est effectivement en état "prêt", et pas seulement que le push est parti.

Concrètement, ça demande deux choses : lister les déploiements récents pour voir leur état, et lire le journal du dernier déploiement pour comprendre s'il y a eu une erreur. Ce n'est pas une opération lourde. C'est une habitude à installer, au même titre qu'on vérifie qu'une facture est bien partie avant de la considérer comme réglée.

Si tu diriges une petite structure, tu n'as pas forcément à faire cette vérification toi-même. Mais tu as le pouvoir de l'exiger. Inscris-la comme condition dans ta façon de travailler avec ton équipe ou ton prestataire : aucune annonce de mise en ligne ne doit être faite sans cette vérification. Ce n'est pas de la méfiance excessive, c'est le minimum pour que "c'est en ligne" veuille vraiment dire quelque chose.

Pousser n'est pas livrer : la leçon qui reste

L'histoire de ce 9 octobre tient en une phrase : pousser n'est pas livrer. Entre les deux, il y a une machine qui peut refuser, et dans beaucoup de configurations, elle refuse sans le dire à personne. Ce n'est pas une fatalité technique impossible à corriger, c'est un angle mort qu'on peut fermer dès qu'on sait qu'il existe.

Ce que tu retiens de tout ça, concrètement, c'est que la confiance aveugle dans un message de succès coûte cher, même quand elle ne coûte rien sur le moment. Un site figé pendant une demi-heure, ça ne se voit pas forcément dans tes chiffres de vente du jour, mais ça peut tomber au pire moment, pendant une campagne, pendant un lancement, pendant que des clients cherchent justement l'information qui n'est pas encore là.

Cette semaine, si tu travailles avec une équipe technique ou un prestataire, pose une seule question avant la prochaine mise en ligne importante : "comment saurons-nous si le déploiement a échoué, et qui sera alerté ?" Si la réponse est vague, ou si elle repose sur "on ira vérifier", c'est le signal qu'il faut corriger avant, pas après le prochain incident.

Cet article peut servir à quelqu'un que tu connais.

Quelle IA pour quoi, offert

Huit outils passés au crible : leurs forces, leurs faiblesses, et ce qu'ils coûtent vraiment, en Afrique comme en Europe. Laisse ton adresse, le guide s'ouvre tout de suite sur cette page, et tu reçois ensuite les nouveaux articles, deux à trois par semaine. Rien d'autre.

Ton adresse ne sera ni cédée, ni revendue, ni utilisée pour autre chose. Un clic suffit pour te désinscrire, sans avoir à te justifier.

Dans la même rubrique