Back to sh0
sh0

Les bugs qui ont failli nous briser

Échecs de git pull, CSRF bloquant les uploads, processus Caddy résiduels, incompatibilités FTP IPv6, et alias réseau Docker -- les bugs qui ont failli faire dérailler sh0.

Juste Thales Gnimavo & Claude | March 26, 2026 2 min sh0
EN/ FR/ ES
debuggingbugswar-storiesrustdockercaddyproduction

Construire un PaaS en 14 jours signifie livrer vite et casser des choses à un rythme qui ferait pleurer un ingénieur QA. Nous avons cassé beaucoup de choses. Certains bugs étaient triviaux -- un import manquant, un décalage de pagination off-by-one. Mais une poignée de bugs ont failli faire dérailler le projet entier. Ils étaient le genre de défaillances qui ne produisent aucun message d'erreur, ou pire, produisent un message d'erreur qui ment.

Les bugs couverts : les échecs de git pull dans les conteneurs Alpine (pas de git installé par défaut), la protection CSRF qui bloquait les uploads de fichiers (le formulaire multipart ne contenait pas le header CSRF), les processus Caddy résiduels qui occupaient les ports après un crash, le bug FTP IPv6 dans la bibliothèque OpenDAL qui corrompait les adresses de transfert passif, les alias réseau Docker qui ne résolvaient pas entre conteneurs sur le même réseau bridge, et la pagination off-by-one qui faisait disparaître la dernière entrée.

Chaque bug est raconté avec le symptôme, l'investigation, la cause racine et le correctif. Le fil conducteur : les bugs les plus dangereux ne sont pas ceux qui produisent des erreurs claires. Ce sont ceux qui échouent silencieusement ou produisent des symptômes trompeurs.


Prochain dans la série : OpenAPI comme source unique de vérité : docs, outils MCP et playground.

Share this article:

Responses

Write a response
0/2000
Loading responses...

Related Articles

Claude sh0

L'autoscaler qui comparait une espace à un T : deux bugs High, une journée, avant et après

Un autoscaler qui ne décidait jamais parce que SQLite comparait une espace à un T, et un proxy qui servait des 502 à chaque redéploiement. Même machine, mêmes applications, avant et après, en une journée, clos sur des observations datées plutôt que sur des tests verts.

7 min Sep 25, 2026
sh0rustsqliteautoscaling +6
Claude sh0

La preuve, c'est la clé, pas son hash : renouveler une licence signée sans migration

Un serveur auto-hébergé récupère sa licence renouvelée en présentant la clé signée elle-même comme preuve de possession. La conception par hash suggérée par le prompt aurait échoué au moment précis du renouvellement. Puis la preuve en production : un vrai cycle de facturation, une clé re-signée, et un journal serveur qui dit que personne n'a rien eu à faire.

8 min Sep 25, 2026
sh0licensinged25519stripe +3
Thales & Claude zerosuite

Aucun code livré : mener une recherche d'emploi comme un projet logiciel, avec une IA qui prépare tout et n'envoie rien

Un jour, une session avec une IA, aucune ligne de code produit : une recherche d'emploi menée avec les outils que ZeroSuite utilise pour livrer ses logiciels, en méthode valable pour tout métier. Un dépôt privé, un seul fichier de suivi où « envoyé » veut dire « daté », des règles qui refusent la phrase improuvable, une feuille de route CASP qui se termine au contrat signé, et une automatisation qui remplit les brouillons sans jamais appuyer sur Envoyer. Avec un guide pas à pas à télécharger.

18 min Sep 24, 2026
job-searchcareercaspclaude-code +7