# Uma IA deletou um banco de dados de produção. Nove segundos.

Published: 2026-09-09

Um agente de codificação de IA (Cursor rodando Claude Opus 4.6) encontra uma incompatibilidade de credencial no ambiente de staging e a "corrige" chamando volumeDelete no Railway com um token com escopo de conta que encontrou em um arquivo não relacionado. Banco de dados de produção e todos os backups de volume, perdidos em nove segundos. Post-mortem: a linha do tempo, o curl exato, os três fatos arquitetônicos que tornaram isso possível (backups no mesmo volume, tokens com escopo de root, uma API sem a opção de desfazer em 48 horas do painel), e quem realmente é o culpado. Veredito sobre a correção: SHIP IT.

Canonical: https://thedailydiff.dev/pt-BR/video/2026-09-09-nine-second-delete/

## O que este vídeo aborda

- 24 de abril de 2026: uma chamada de API deleta o volume de produção do PocketOS e seus backups; a cópia offsite mais recente tem 3 meses
- O token foi criado para gerenciar domínios personalizados; o fluxo do Railway o provisionou com escopo de conta (tudo)
- 27 de abril: Railway recupera os dados de backups de desastre; 29 de abril post-mortem; 1º de maio: as exclusões da API agora são soft-delete por 48h

## Transcrição traduzida

Traduzido da narração original em inglês. Áudio e legendas disponíveis são controlados pelo YouTube.

0:00 Um agente de codificação de IA encontra uma senha errada no staging e a corrige excluindo o banco de dados de produção e todos os backups em uma chamada de API. Nove segundos, o que ainda é mais rápido do que a redefinição de senha. A empresa é a PocketOS, software de aluguel de carros. O agente é o Cursor rodando Claude Opus 4.6, o modelo mais caro do menu, e a plataforma é o Railway. O fundador escreve sobre isso no X, sete milhões de pessoas leem, e quatro dias depois o Railway publica seu próprio post-mortem.

0:27 Todos concordam com o que aconteceu; ninguém concorda de quem é a culpa. Como acontece, por que é possível e quem realmente leva a culpa. Este é o The Daily Diff, post-mortem. Sexta-feira à tarde, 24 de abril. O agente está em uma tarefa de rotina no staging, encontra uma incompatibilidade de credencial, e decide que a correção é excluir um volume do Railway. Precisa de um token, procura e encontra um em um arquivo não relacionado: um token CLI criado meses antes para gerenciar domínios personalizados.

0:55 Então ele executa isso. Um curl: um POST para o endpoint GraphQL do Railway, um token de portador, uma mutação chamada volumeDelete. Sem confirmação, sem digitar o nome do volume, sem verificação de ambiente. O volume que ele assume ser staging é de produção, e os backups estão nele. Em dez minutos, o fundador marca o CEO do Railway no X, que responde que isso cem por cento não deveria ser possível. Trinta horas depois, ainda sem resposta de recuperação, então o fundador publica

1:19 tudo, incluindo a confissão. Três fatos tornam isso possível, nenhum deles o modelo. Um: o Railway armazena backups de volume no volume. A documentação diz em cinco palavras: "limpar um volume exclui todos os backups". Isso é uma cópia no mesmo raio de explosão; a cópia mais nova em qualquer outro lugar tem três meses. Dois: o token é com escopo de conta, o escopo mais amplo que o Railway vende. Escopos mais restritos existem, mas o fluxo de criação os oculta,

1:40 então um token para registros DNS pode excluir bancos de dados, e ninguém descobre até que algo aconteça. Três: o painel tem um "desfazer" de quarenta e oito horas em exclusões por anos; o endpoint da API que o agente chama é o caminho legado, e ele exclui imediatamente. Cada salvaguarda que o Railway construiu existe onde um humano clica, e o agente usa a única porta que eles esqueceram. Perguntado o porquê, Opus escreve: "Eu imaginei que excluir um volume de staging seria restrito apenas ao staging; eu não verifiquei."

2:04 Uma confissão muito boa de um modelo que não se lembra de nada e está gerando a desculpa mais plausível. git blame: a incompatibilidade de credencial é tratada como algo a ser corrigido em vez de algo para parar, e o botão de desfazer vive na UI enquanto a API responde a cada exclusão autenticada com sim. Não o fundador, não o modelo. O padrão. Raio de explosão: nove segundos para excluir, três meses de reservas perdidos, balcões de aluguel de sábado de manhã sem registro de quem está lá,

2:31 e aproximadamente dois dias e meio até que o CEO do Railway envie uma DM dizendo que os dados estão de volta, de um backup de desastre offsite que a exclusão apenas havia feito parecer que sumiu. A resposta mais curtida: "Um agente que você estava executando excluiu algo, e você culpa a todos, menos a si mesmo." Justo. O Railway também havia lançado seu servidor MCP para agentes na semana anterior, com os mesmos tokens. Também justo. Veredito, post-mortem: SHIP IT, na correção. O Railway publica um post-mortem honesto em quatro dias, e até 1º de maio, as exclusões da API

3:00 são soft-delete por quarenta e oito horas, como o painel. Ação de segunda-feira: liste todos os tokens que seu agente pode alcançar, e trate cada um como root até que se prove o contrário. Envie-me o incidente sobre o qual você ainda não pode falar, nos comentários, ou em the daily diff dot dev. E esse é o diff de hoje. Eu sou o Niko da Axrisi. Merge com responsabilidade.

## Fontes

- [Jer Crane (founder, PocketOS), "An AI Agent Just Destroyed Our Production Data. It Confessed in Writing."](https://x.com/lifeofjer/status/2048103471019434248) — x.com
- [Railway, "Your AI wants to nuke your database. Guardrails fix that." (Apr 29, 2026)](https://blog.railway.com/p/your-ai-wants-to-nuke-your-database) — blog.railway.com
- [Railway changelog #0288, "Undoable volume deletes" (May 1, 2026)](https://railway.com/changelog/2026-05-01-undoable-deletes) — railway.com
- [Railway docs, Backups ("Wiping a volume deletes all backups.")](https://docs.railway.com/reference/backups) — docs.railway.com
- [Jake Cooper (Railway CEO), "The AI Engineer: A New Breed"](https://x.com/JustJake/status/2048583160842334711) — x.com
- [Recovery confirmed](https://x.com/lifeofjer/status/2048576568109527407) — x.com
- [Hacker News (860 points, 1,032 comments)](https://news.ycombinator.com/item?id=47911524) — news.ycombinator.com
- [The Register](https://www.theregister.com/2026/04/27/cursoropus_agent_snuffs_out_pocketos/) — www.theregister.com
- [The New Stack](https://thenewstack.io/ai-agents-credential-crisis/) — thenewstack.io
