Digital Downloads: Persistence Fix & Automatic Delivery for Past Orders

September 13, 2026

Today we fixed a bug that caused some digital download files to disappear after server updates — and, just as importantly, made sure that buyers automatically receive access the moment a seller (re-)uploads a file.

What happened

A few buyers saw “file not found on disk” when clicking the download button in My Downloads, even though their order was paid and the download entry existed.

The technical root cause

Our game service runs in a Docker container on each regional VPS. Uploaded download files are written to /var/lib/erleuchtung/shop-downloads — which is supposed to be a persistent folder on the host server, mounted into the container.

The mount existed in our development configuration, but was missing from the deployment compose file that our update agent installs on the VPS nodes. As a result, uploaded files were stored inside the container’s own filesystem layer. Whenever an update recreated the container, that layer was discarded — the files vanished, while the database records (which live in PostgreSQL) survived.

The result: a valid download entry pointing at a file that no longer existed.

What we fixed

  • Persistent storage on all nodes. The download directory is now correctly bind-mounted to host storage on all regional servers (US, IN, EU2, SG, and our MAAS staging node). Uploads survive updates and container recreations.
  • Automatic backfill on upload. Previously, download access was only granted at the moment of payment — and only for files that existed at that time. Now, when a seller uploads a file to a product, it is automatically granted to every buyer with a paid order for that product, with an instant notification.
  • Self-healing download list. Opening “My Downloads” now repairs missing grants for all of your paid orders — older purchases heal themselves.
  • Grant on shipment. When a seller marks an order as shipped/delivered, any attached files are granted immediately — digital goods are due at delivery.

What sellers need to do

Files that were uploaded before this fix and were lost during an update cannot be recovered — they only ever existed inside a discarded container layer.

If you uploaded files earlier: open your product, delete the stale download entry, and upload the file again. The moment you upload, every past buyer automatically regains access — no manual work needed.

A note on transparency

The “shipped” notification emails some of you received mentioned downloadable files that were never actually attached — that text was the seller’s shipping note, not a file delivery. With this release, the download button in My Downloads is the single source of truth: if a file is listed there, it exists on the server and will download.

Thank you for bearing with us — and special thanks to the community members who reported the issue quickly.

— The Erleuchtung Team