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