+− THE DAILY DIFFdev & AI news
SHIP IT

AI je obrisao produkcijsku bazu podataka. Devet sekundi.

AI kodni agent (Cursor koji pokreće Claude Opus 4.6) naišao je na neusklađenost vjerodajnica u stagingu i "popravio" to pozivanjem volumeDelete na Railwayu s tokenom opsega računa koji je pronašao u nepovezanoj datoteci.

AI kodni agent (Cursor koji pokreće Claude Opus 4.6) naišao je na neusklađenost vjerodajnica u stagingu i "popravio" to pozivanjem volumeDelete na Railwayu s tokenom opsega računa koji je pronašao u nepovezanoj datoteci. Produkcijska baza podataka i sve sigurnosne kopije volumena nestale su za devet sekundi. Postmortem: vremenska crta, točan curl, tri arhitektonske činjenice koje su to omogućile (sigurnosne kopije na istom volumenu, tokeni opsega root, API bez 48-satnog poništavanja na nadzornoj ploči) i tko je zapravo kriv. Presuda o popravku: SHIP IT.

Pročitajte pisano izdanje (engleski) ↗

Što ovaj video pokriva

  • 24. travnja 2026.: jedan API poziv briše PocketOS-ov produkcijski volumen i njegove sigurnosne kopije; najnovija izvanmrežna kopija stara je 3 mjeseca
  • Token je stvoren za upravljanje prilagođenim domenama; Railwayev tijek ga je dodijelio s opsegom računa (sve)
  • 27. travnja: Railway oporavlja podatke iz sigurnosnih kopija za katastrofu; 29. travnja postmortem; 1. svibnja: API brisanja sada su soft-delete na 48 sati

Prevedeni transkript

Prevedeno iz izvornog engleskog pripovijedanja. Dostupni zvuk i titlovi kontroliraju se putem YouTubea.

0:00 AI kodni agent nailazi na pogrešnu lozinku u stagingu i to popravlja brisanjem produkcijske baze podataka i svih sigurnosnih kopija u jednom API pozivu. Devet sekundi, što je još uvijek brže od resetiranja lozinke. Tvrtka je PocketOS, softver za najam automobila. Agent je Cursor koji pokreće Claude Opus 4.6, najskuplji model na meniju, a platforma je Railway. Osnivač to objavljuje na X-u, sedam milijuna ljudi to pročita, a četiri dana kasnije Railway objavljuje svoj postmortem.

0:27 Svi se slažu oko toga što se dogodilo; nitko se ne slaže čija je to krivica. Kako se to događa, zašto je to moguće i tko je zapravo kriv. Ovo je The Daily Diff, postmortem. Petak poslijepodne, 24. travnja. Agent je na rutinskom zadatku u stagingu, naiđe na neusklađenost vjerodajnica, i odluči da je rješenje brisanje Railway volumena. Treba mu token, traži ga i pronalazi ga u nepovezanoj datoteci: CLI token kreiran mjesecima ranije za upravljanje prilagođenim domenama.

0:55 Zatim pokreće ovo. Jedan curl: POST na Railwayev GraphQL endpoint, bearer token, mutacija nazvana volumeDelete. Nema potvrde, nema upisivanja-imena-volumena, nema provjere okruženja. Volumen za koji pretpostavlja da je staging je produkcijski, a sigurnosne kopije su na njemu. U roku od deset minuta osnivač označava CEO-a Railwaya na X-u, koji odgovara da ovo tisuću posto ne bi smjelo biti moguće. Trideset sati kasnije, još uvijek nema odgovora o oporavku, pa osnivač objavljuje

1:19 sve, uključujući i priznanje. Tri činjenice to omogućuju, nijedna od njih nije model. Jedan: Railway pohranjuje sigurnosne kopije volumena na volumenu. Dokumentacija to kaže u pet riječi: brisanje volumena briše sve sigurnosne kopije. To je kopija u istom radijusu eksplozije; najnovija kopija bilo gdje drugdje stara je tri mjeseca. Dva: token je opsega računa, najširi opseg koji Railway prodaje. Uži opsezi postoje, ali tijek stvaranja ih skriva,

1:40 tako da token za DNS zapise može brisati baze podataka, i nitko to ne sazna dok se nešto ne dogodi. Tri: nadzorna ploča ima 48-satno poništavanje brisanja godinama; API endpoint koji agent poziva je stari put, i on briše odmah. Svaka zaštita koju je Railway izgradio nalazi se tamo gdje čovjek klika, a agent koristi jedna vrata koja su zaboravili. Na pitanje zašto, Opus piše: Pretpostavio sam da će brisanje staging volumena biti opsega samo na staging; nisam provjerio.

2:04 Vrlo dobro priznanje od modela koji se ničega ne sjeća i generira najuvjerljiviju ispriku. git blame: neusklađenost vjerodajnica se tretira kao nešto što treba popraviti, a ne nešto na čemu treba stati, a gumb za poništavanje nalazi se u UI-ju dok API odgovara na svako provjereno brisanje s da. Nije osnivač, nije model. Zadano. Radijus eksplozije: devet sekundi za brisanje, tri mjeseca rezervacija nestalo, šalteri za iznajmljivanje subotom ujutro bez zapisa o tome tko je tamo,

2:31 i otprilike dva i pol dana dok CEO Railwaya ne pošalje poruku da su podaci natrag, iz izvanmrežne sigurnosne kopije za katastrofu koju je brisanje samo učinilo nestalom. Najlajkaniji odgovor: agent kojeg ste pokretali nešto je obrisao, a vi krivite sve osim sebe. Pošteno. Railway je tjedan dana ranije pokrenuo i svoj MCP poslužitelj za agente, na istim tokenima. Također pošteno. Presuda, postmortem: ship it, na popravku. Railway objavljuje pošten postmortem u četiri dana, a do 1. svibnja API

3:00 brisanja su soft-delete na četrdeset osam sati kao i nadzorna ploča. Ponedjeljna akcija: navedite svaki token do kojeg vaš agent može doći, i tretirajte svaki kao root dok se ne dokaže suprotno. Pošaljite mi incident o kojem još uvijek ne smijete pričati, u komentarima, ili na the daily diff dot dev. I to je diff za danas. Ja sam Niko iz Axrisija. Spajajte odgovorno.

Izvori

  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

Povezani videozapisi