À 08:04, le EJU15DB a atterri sur la piste 03 — puis, le silence.

Pas le silence paisible d'un ciel vide. Le genre de silence où quelque chose ne va pas, mais personne ne vous l'a encore dit.

Depuis des mois, main.py exécutait une vérification silencieuse au démarrage : « Suis-je déjà en cours d'exécution ? Laisse-moi vérifier. » Cela fonctionnait parfaitement — jusqu'à ce matin, quand il a trouvé un fantôme. Un ID de processus laissé par une exécution précédente, appartenant à un autre utilisateur, simplement là, dans un fichier. Pas mort. Pas à nous. Juste... là.

Python a dit : « Je ne peux pas toucher à ça. » Et il a planté. Puis redémarré. Et planté de nouveau. Dix-huit fois, toutes les dix secondes, pendant trois heures et vingt minutes.

Pendant ce temps, le ciel continuait de bouger. Environ 50 vols ont traversé le couloir d'approche entre 8h et 11h — Easyjet, TAP, Ryanair, le trafic matinal habituel — et aucun d'entre eux n'est entré dans le journal de bord.

La correction tenait en un mot : PermissionError, ajouté à une liste de trois.

Le fantôme a disparu. Le pipeline fonctionne. Le journal de bord est de nouveau ouvert.

Vols perdus : ~50. Leçon retenue : les fantômes se déclinent en plus d'une saveur.