Downloads digitais: correção de persistência e entrega automática para pedidos anteriores

13 de setembro de 2026

Hoje corrigimos um bug que fazia alguns arquivos de download digital desaparecerem após atualizações do servidor — e, igualmente importante, garantimos que os compradores obtenham acesso automaticamente assim que um vendedor (re)envia um arquivo.

O que aconteceu

Alguns compradores viram «file not found on disk» (arquivo não encontrado no disco) ao clicar no botão de download em Meus downloads, mesmo com o pedido pago e a entrada de download existente.

A causa técnica

Nosso serviço de jogo roda em um contêiner Docker em cada VPS regional. Os arquivos enviados são gravados em /var/lib/erleuchtung/shop-downloads — que deveria ser uma pasta persistente no servidor host, montada dentro do contêiner.

A montagem existia na nossa configuração de desenvolvimento, mas faltava no arquivo compose de implantação que nosso agente de atualização instala nos nós VPS. Como resultado, os arquivos enviados eram armazenados na camada do sistema de arquivos do próprio contêiner. Sempre que uma atualização recriava o contêiner, essa camada era descartada — os arquivos sumiam, enquanto os registros do banco de dados (que ficam no PostgreSQL) sobreviviam.

O resultado: uma entrada de download válida apontando para um arquivo que não existia mais.

O que corrigimos

  • Armazenamento persistente em todos os nós. O diretório de downloads agora está corretamente montado no armazenamento do host em todos os servidores regionais (US, IN, EU2, SG e nosso nó de staging MAAS). Os envios sobrevivem a atualizações e recriações de contêineres.
  • Preenchimento automático no envio. Anteriormente, o acesso ao download só era concedido no momento do pagamento — e apenas para arquivos que existiam naquele momento. Agora, quando um vendedor envia um arquivo para um produto, ele é automaticamente concedido a todos os compradores com um pedido pago desse produto, com notificação instantânea.
  • Lista de downloads autorregenerativa. Abrir «Meus downloads» agora repara acessos faltantes em todos os seus pedidos pagos — compras antigas se curam sozinhas.
  • Concessão no envio. Quando um vendedor marca um pedido como enviado/entregue, os arquivos anexados são concedidos imediatamente — bens digitais são devidos na entrega.

O que os vendedores precisam fazer

Arquivos enviados antes desta correção e perdidos durante uma atualização não podem ser recuperados — eles só existiram dentro de uma camada de contêiner descartada.

Se você enviou arquivos anteriormente: abra seu produto, exclua a entrada de download obsoleta e envie o arquivo novamente. No momento do envio, todos os compradores anteriores recuperam o acesso automaticamente — sem trabalho manual.

Uma nota sobre transparência

Os e-mails de notificação de «enviado» que alguns de vocês receberam mencionavam arquivos para download que na verdade nunca foram anexados — esse texto era a nota de envio do vendedor, não uma entrega de arquivo. Com esta versão, o botão de download em «Meus downloads» é a única fonte confiável: se um arquivo está listado lá, ele existe no servidor e pode ser baixado.

Obrigado pela paciência — e um agradecimento especial aos membros da comunidade que reportaram o problema rapidamente.

— A equipe Erleuchtung