Téléchargements numériques : correctif de persistance et livraison automatique pour les commandes passées
13 septembre 2026
Aujourd’hui, nous avons corrigé un bug qui faisait disparaître certains fichiers de téléchargement numérique après les mises à jour des serveurs — et, tout aussi important, nous avons fait en sorte que les acheteurs obtiennent automatiquement l’accès dès qu’un vendeur (re-)téléverse un fichier.
Ce qui s’est passé
Quelques acheteurs ont vu « file not found on disk » (fichier introuvable sur le disque) en cliquant sur le bouton de téléchargement dans Mes téléchargements, alors même que leur commande était payée et que l’entrée de téléchargement existait.
La cause technique
Notre service de jeu fonctionne dans un conteneur Docker sur chaque VPS régional. Les fichiers téléversés sont écrits dans /var/lib/erleuchtung/shop-downloads — qui est censé être un dossier persistant sur le serveur hôte, monté dans le conteneur.
Le montage existait dans notre configuration de développement, mais manquait dans le fichier compose de déploiement que notre agent de mise à jour installe sur les nœuds VPS. En conséquence, les fichiers téléversés étaient stockés dans la couche système du conteneur. À chaque recréation du conteneur lors d’une mise à jour, cette couche était supprimée — les fichiers disparaissaient, tandis que les enregistrements en base de données (stockés dans PostgreSQL) survivaient.
Le résultat : une entrée de téléchargement valide pointant vers un fichier qui n’existait plus.
Ce que nous avons corrigé
- Stockage persistant sur tous les nœuds. Le répertoire de téléchargement est désormais correctement monté sur le stockage hôte de tous les serveurs régionaux (US, IN, EU2, SG et notre nœud de staging MAAS). Les téléversements survivent aux mises à jour et aux recréations de conteneurs.
- Backfill automatique lors du téléversement. Auparavant, l’accès au téléchargement n’était accordé qu’au moment du paiement — et uniquement pour les fichiers existant à ce moment-là . Désormais, lorsqu’un vendeur téléverse un fichier sur un produit, il est automatiquement accordé à tous les acheteurs ayant une commande payée pour ce produit, avec une notification instantanée.
- Liste de téléchargements auto-réparatrice. L’ouverture de « Mes téléchargements » répare désormais les accès manquants pour toutes vos commandes payées — les anciens achats se réparent d’eux-mêmes.
- Attribution à l’expédition. Lorsqu’un vendeur marque une commande comme expédiée/livrée, les fichiers joints sont accordés immédiatement — les biens numériques sont dus à la livraison.
Ce que les vendeurs doivent faire
Les fichiers téléversés avant ce correctif et perdus lors d’une mise à jour ne peuvent pas être récupérés — ils n’ont existé que dans une couche de conteneur supprimée.
Si vous avez téléversé des fichiers auparavant : ouvrez votre produit, supprimez l’entrée de téléchargement obsolète et téléversez à nouveau le fichier. Au moment du téléversement, tous les acheteurs passés retrouvent automatiquement l’accès — aucun travail manuel nécessaire.
Un mot sur la transparence
Les e-mails de notification « expédié » que certains d’entre vous ont reçus mentionnaient des fichiers téléchargeables qui n’avaient en réalité jamais été joints — ce texte était la note d’expédition du vendeur, pas une livraison de fichier. Avec cette version, le bouton de téléchargement dans « Mes téléchargements » est l’unique source de vérité : si un fichier y figure, il existe sur le serveur et peut être téléchargé.
Merci de votre patience — et un merci tout particulier aux membres de la communauté qui ont signalé le problème rapidement.
— L’équipe Erleuchtung