AI je izbrisal produkcijsko bazo podatkov. Devet sekund.
AI agent za kodiranje (Cursor z zagonom Claude Opus 4.6) naleti na neujemnost poverilnic v testnem okolju in jo "popravi" tako, da pokliče volumeDelete na Railway z žetonom v obsegu računa, ki ga je našel v nepovezani datoteki.
AI agent za kodiranje (Cursor z zagonom Claude Opus 4.6) naleti na neujemnost poverilnic v testnem okolju in jo "popravi" tako, da pokliče volumeDelete na Railway z žetonom v obsegu računa, ki ga je našel v nepovezani datoteki. Produkcijska baza podatkov in vsaka varnostna kopija volumna, izginili v devetih sekundah. Postmortem: časovnica, natančen curl, trije arhitekturni dejavniki, ki so to omogočili (varnostne kopije na istem volumnu, žetoni v obsegu korenskega uporabnika, API brez možnosti razveljavitve nadzorne plošče za 48 ur) in kdo je resnično kriv. Sodba o popravku: SHIP IT.
Preberi pisno izdajo (angleščina) ↗
Kaj zajema ta videoposnetek
- 24. april 2026: en klic API-ja izbriše produkcijski volumen PocketOS-a in njegove varnostne kopije; najnovejša zunanja kopija je stara 3 mesece
- Žeton je bil ustvarjen za upravljanje domen po meri; potek dela Railway ga je dodelil v obsegu računa (vse)
- 27. april: Railway obnovi podatke iz varnostnih kopij za nesreče; 29. april postmortem; 1. maj: API izbrisi so zdaj mehki izbrisi za 48 ur
Preveden prepis
Prevedeno iz izvirnega angleškega pripovedovanja. Razpoložljivi zvok in podnapisi so nadzorovani s strani YouTuba.
0:00 AI kodirni agent naleti na napačno geslo v testnem okolju in ga popravi z brisanjem produkcijske baze podatkov in vsake varnostne kopije z enim API klicem. Devet sekund, kar je še vedno hitreje kot ponastavitev gesla. Podjetje je PocketOS, programska oprema za najem avtomobilov. Agent je Cursor, ki poganja Claude Opus 4.6, najdražji model na meniju, in platforma je Railway. Ustanovitelj to napiše na X, prebere ga sedem milijonov ljudi, in štiri dni kasneje Railway objavi svoj postmortem.
0:27 Vsi se strinjajo, kaj se je zgodilo; nihče se ne strinja, čigava krivda je. Kako se zgodi, zakaj je to mogoče in kdo je dejansko kriv. To je The Daily Diff, postmortem. Petek popoldne, 24. april. Agent opravlja rutinsko nalogo v testnem okolju, naleti na neujemnost poverilnic, in se odloči, da je rešitev izbris Railway volumna. Potrebuje žeton, ga poišče in ga najde v nepovezani datoteki: CLI žeton, ustvarjen mesece prej za upravljanje domen po meri.
0:55 Nato zažene to. En curl: POST na GraphQL končno točko Railway, žeton nosilca, mutacija imenovana volumeDelete. Brez potrditve, brez vpisa-imena-volumena, brez preverjanja okolja. Volumen, za katerega predvideva, da je testni, je produkcijski, in varnostne kopije so na njem. V desetih minutah ustanovitelj označi CEO-ja Railway na X, ki odgovori, da to tisoč odstotkov ne bi smelo biti mogoče. Trideset ur kasneje, še vedno ni odgovora o obnovitvi, zato ustanovitelj objavi
1:19 vse, vključno s priznanjem. Trije dejavniki omogočajo to, noben od njih ni model. Prvo: Railway shranjuje varnostne kopije volumna na volummu. Dokumentacija to pove v petih besedah: brisanje volumna izbriše vse varnostne kopije. To je kopija v istem območju uničenja; najnovejša kopija drugje je stara tri mesece. Drugo: žeton je v obsegu računa, najširšem obsegu, ki ga Railway prodaja. Ožji obsegi obstajajo, vendar jih postopek ustvarjanja skrije,
1:40 tako da lahko žeton za DNS zapise izbriše baze podatkov, in nihče ne ugotovi, dokler se nekaj ne zgodi. Tretje: nadzorna plošča ima že leta štiriinosemdeset-urno razveljavitev izbrisov; API končna točka, ki jo pokliče agent, je zapuščena pot, in briše takoj. Vsaka varovalka, ki jo je Railway zgradil, živi tam, kjer človek klikne, in agent uporablja tista vrata, ki so jih pozabili. Vprašan zakaj, Opus piše: Predvideval sem, da bo brisanje testnega volumna omejeno samo na testno okolje; nisem preveril.
2:04 Zelo dobro priznanje modela, ki se ničesar ne spomni in generira najbolj verjetno opravičilo. git blame: neujemnost poverilnic je obravnavana kot nekaj, kar je treba popraviti, ne pa kot nekaj, pri čemer se je treba ustaviti, in gumb za razveljavitev živi v uporabniškem vmesniku, medtem ko API odgovori na vsak avtenticiran izbris z da. Ne ustanovitelj, ne model. Privzeto. Območje uničenja: devet sekund za izbris, trije meseci rezervacij izginili, sobote zjutraj na pultih za najem brez podatkov, kdo stoji tam,
2:31 in približno dva in pol dni, dokler CEO Railway ne DM, da so podatki nazaj, iz zunanje varnostne kopije za nesreče, ki je bila le videti izginila. Najbolj všečkan odgovor: agent, ki ste ga poganjali, je nekaj izbrisal, in krivite vse razen sebe. Pošteno. Railway je teden dni prej lansiral tudi svoj MCP strežnik za agente, na istih žetonih. Tudi pošteno. Sodba, postmortem: SHIP IT, glede popravka. Railway objavi pošten postmortem v štirih dneh, in do 1. maja API
3:00 izbrisi so mehki izbrisi za osemindvajset ur, kot nadzorna plošča. Ponedeljkova akcija: navedite vsak žeton, ki ga lahko doseže vaš agent, in vsakega obravnavajte kot korenskega, dokler ni dokazano drugače. Pošljite mi incident, o katerem še vedno ne smete govoriti, v komentarjih ali na the daily diff dot dev. In to je diff za danes. Sem Niko iz Axrisi. Združite odgovorno.
Viri
- Jer Crane (founder, PocketOS), "An AI Agent Just Destroyed Our Production Data. It Confessed in Writing."x.com
- Railway, "Your AI wants to nuke your database. Guardrails fix that." (Apr 29, 2026)blog.railway.com
- Railway changelog #0288, "Undoable volume deletes" (May 1, 2026)railway.com
- Railway docs, Backups ("Wiping a volume deletes all backups.")docs.railway.com
- Jake Cooper (Railway CEO), "The AI Engineer: A New Breed"x.com
- Recovery confirmedx.com
- Hacker News (860 points, 1,032 comments)news.ycombinator.com
- The Registerwww.theregister.com
- The New Stackthenewstack.io



