Descargas digitales: corrección de persistencia y entrega automática para pedidos anteriores
13 de septiembre de 2026
Hoy corregimos un error que hacÃa que algunos archivos de descarga digital desaparecieran tras las actualizaciones del servidor — e, igualmente importante, nos aseguramos de que los compradores obtengan acceso automáticamente en cuanto un vendedor (re)sube un archivo.
Qué ocurrió
Algunos compradores veÃan «file not found on disk» (archivo no encontrado en el disco) al hacer clic en el botón de descarga en Mis descargas, aunque su pedido estaba pagado y la entrada de descarga existÃa.
La causa técnica
Nuestro servicio de juego se ejecuta en un contenedor Docker en cada VPS regional. Los archivos subidos se escriben en /var/lib/erleuchtung/shop-downloads — que deberÃa ser una carpeta persistente en el servidor anfitrión, montada dentro del contenedor.
El montaje existÃa en nuestra configuración de desarrollo, pero faltaba en el archivo compose de despliegue que nuestro agente de actualización instala en los nodos VPS. Como resultado, los archivos subidos se almacenaban dentro de la capa del propio contenedor. Cada vez que una actualización recreaba el contenedor, esa capa se descartaba — los archivos desaparecÃan, mientras que los registros de la base de datos (que viven en PostgreSQL) sobrevivÃan.
El resultado: una entrada de descarga válida que apuntaba a un archivo que ya no existÃa.
Qué hemos corregido
- Almacenamiento persistente en todos los nodos. El directorio de descargas ahora está correctamente montado en el almacenamiento del anfitrión en todos los servidores regionales (US, IN, EU2, SG y nuestro nodo de staging MAAS). Las subidas sobreviven a las actualizaciones y a las recreaciones de contenedores.
- Reposición automática al subir. Antes, el acceso a la descarga solo se concedÃa en el momento del pago — y solo para los archivos que existÃan en ese momento. Ahora, cuando un vendedor sube un archivo a un producto, se concede automáticamente a todos los compradores con un pedido pagado de ese producto, con notificación instantánea.
- Lista de descargas autorreparable. Abrir «Mis descargas» ahora repara los accesos que falten en todos tus pedidos pagados — las compras antiguas se reparan solas.
- Concesión al enviar. Cuando un vendedor marca un pedido como enviado/entregado, los archivos adjuntos se conceden inmediatamente — los bienes digitales se deben en la entrega.
Qué deben hacer los vendedores
Los archivos que se subieron antes de esta corrección y se perdieron durante una actualización no pueden recuperarse — solo existieron dentro de una capa de contenedor descartada.
Si subiste archivos anteriormente: abre tu producto, elimina la entrada de descarga obsoleta y vuelve a subir el archivo. En el momento en que lo subas, todos los compradores anteriores recuperan el acceso automáticamente — sin trabajo manual.
Una nota sobre transparencia
Los correos de notificación de «enviado» que algunos de ustedes recibieron mencionaban archivos descargables que nunca fueron adjuntados realmente — ese texto era la nota de envÃo del vendedor, no una entrega de archivo. Con esta versión, el botón de descarga en «Mis descargas» es la única fuente confiable: si un archivo aparece ahÃ, existe en el servidor y se puede descargar.
Gracias por su paciencia — y un agradecimiento especial a los miembros de la comunidad que reportaron el problema rápidamente.
— El equipo de Erleuchtung