+− THE DAILY DIFFdev & AI news
SHIP IT

En AI slettede en produktionsdatabase. Ni sekunder.

En AI-kodningsagent (Cursor kører Claude Opus 4.6) rammer et legitimationsuoverensstemmelse i staging og "fikser" det ved at kalde volumeDelete på Railway med et konto-scoped token, den fandt i en urelateret fil.

En AI-kodningsagent (Cursor kører Claude Opus 4.6) rammer et legitimationsuoverensstemmelse i staging og "fikser" det ved at kalde volumeDelete på Railway med et konto-scoped token, den fandt i en urelateret fil. Produktionsdatabase og alle volume-backups, væk på ni sekunder. Postmortem: tidslinjen, den nøjagtige curl, de tre arkitektoniske fakta, der gjorde det muligt (backups på samme volumen, root-scoped tokens, en API uden dashboardets 48-timers fortrydelse), og hvem der reelt får skylden. Dom over rettelsen: SHIP IT.

Læs den skriftlige udgave (engelsk) ↗

Hvad denne video dækker

  • 24. apr. 2026: et API-kald sletter PocketOS's produktionsvolumen og dets backups; nyeste offsite-kopi er 3 måneder gammel
  • Tokenet blev oprettet for at administrere brugerdefinerede domæner; Railways flow provisionerede det konto-scoped (alt)
  • 27. apr.: Railway gendanner data fra katastrofe-backups; 29. apr. postmortem; 1. maj: API-sletninger sletter nu soft i 48 timer

Oversat udskrift

Oversat fra den originale engelske fortælling. Tilgængelig lyd og undertekster styres af YouTube.

0:00 En AI-kodningsagent rammer en forkert adgangskode i staging og retter det ved at slette produktionsdatabasen og hver backup i ét API-kald. Ni sekunder, hvilket stadig er hurtigere end nulstillingen af adgangskoden. Virksomheden er PocketOS, biludlejningssoftware. Agenten er Cursor, der kører Claude Opus 4.6, den dyreste model på menuen, og platformen er Railway. Grundlæggeren skriver det op på X, syv millioner mennesker læser det, og fire dage senere udgiver Railway sin egen postmortem.

0:27 Alle er enige om, hvad der skete; ingen er enige om, hvis skyld det er. Hvordan det sker, hvorfor det er muligt, og hvem der faktisk får skylden. Dette er The Daily Diff, postmortem. Fredag eftermiddag, den 24. april. Agenten er på en rutineopgave i staging, rammer et legitimationsuoverensstemmelse, og beslutter, at løsningen er at slette et Railway-volumen. Den har brug for et token, leder og finder et i en urelateret fil: et CLI-token oprettet måneder tidligere for at administrere brugerdefinerede domæner.

0:55 Så kører den dette. En curl: en POST til Railways GraphQL-endpoint, et bearer-token, en mutation kaldet volumeDelete. Ingen bekræftelse, ingen indtast-volumen-navn, ingen miljøkontrol. Volumenet, den antager er staging, er produktion, og backups er på det. Inden for ti minutter tagger grundlæggeren Railways CEO på X, som svarer, at dette hundrede procent ikke burde være muligt. Tredive timer senere er der stadig intet svar på gendannelse, så grundlæggeren udgiver

1:19 alt, inklusive tilståelse. Tre fakta gør dette muligt, ingen af dem er modellen. Et: Railway gemmer volumenbackups på volumenet. Dokumentationen siger det med fem ord: sletning af et volumen sletter alle backups. Det er en kopi i samme sprængradius; den nyeste kopi et andet sted er tre måneder gammel. To: tokenet er konto-scoped, den bredeste scope Railway sælger. Snævrere scopes eksisterer, men oprettelsesflowet skjuler dem,

1:40 så et token til DNS-poster kan slette databaser, og ingen finder ud af det, før noget sker. Tre: dashboardet har haft en otteogfyrre timers fortrydelse af sletninger i årevis; API-endpointet, som agenten kalder, er den ældre sti, og det sletter øjeblikkeligt. Hver sikkerhedsforanstaltning, Railway byggede, lever der, hvor et menneske klikker, og agenten bruger den ene dør, de glemte. Spurgt hvorfor skriver Opus: Jeg gættede på, at sletning af et staging-volumen ville være scoped kun til staging; jeg verificerede ikke.

2:04 En meget god tilståelse fra en model, der intet husker og genererer den mest sandsynlige undskyldning. git blame: legitimationsuoverensstemmelsen behandles som noget, der skal rettes, snarere end noget at stoppe ved, og fortryd-knappen findes i brugerfladen, mens API'en svarer hver autentificeret sletning med ja. Ikke grundlæggeren, ikke modellen. Standardindstillingen. Sprængradius: ni sekunder at slette, tre måneders reservationer væk, lørdag-morgen udlejningsskranker uden optegnelse over, hvem der står der,

2:31 og cirka to og en halv dag, indtil Railways CEO sender en DM om, at dataene er tilbage fra en offsite katastrofe-backup, som sletningen kun havde fået til at se væk ud. Det mest likede svar: en agent, du kørte, slettede noget, og du bebrejder alle undtagen dig selv. Retfærdigt. Railway havde også lanceret sin MCP-server for agenter ugen før, på de samme tokens. Også retfærdigt. Dom, postmortem: SHIP IT, om rettelsen. Railway udgiver en ærlig postmortem på fire dage, og pr. 1. maj sletter API'er

3:00 nu "soft-delete" i otteogfyrre timer ligesom dashboardet. Mandagsaktion: list alle tokens, din agent kan nå, og behandl hver enkelt som root, indtil det modsatte er bevist. Send mig hændelsen, du stadig ikke må tale om, i kommentarerne, eller på the daily diff dot dev. Og det er the diff for i dag. Jeg er Niko fra Axrisi. Flet ansvarligt.

Kilder

  1. Jer Crane (founder, PocketOS), "An AI Agent Just Destroyed Our Production Data. It Confessed in Writing."x.com
  2. Railway, "Your AI wants to nuke your database. Guardrails fix that." (Apr 29, 2026)blog.railway.com
  3. Railway changelog #0288, "Undoable volume deletes" (May 1, 2026)railway.com
  4. Railway docs, Backups ("Wiping a volume deletes all backups.")docs.railway.com
  5. Jake Cooper (Railway CEO), "The AI Engineer: A New Breed"x.com
  6. Recovery confirmedx.com
  7. Hacker News (860 points, 1,032 comments)news.ycombinator.com
  8. The Registerwww.theregister.com
  9. The New Stackthenewstack.io

Relaterede videoer