+− THE DAILY DIFFdev & AI news
SHIP IT

Veštačka inteligencija je obrisala produkcionu bazu podataka. Devet sekundi.

AI agent za kodiranje (Cursor koji pokreće Claude Opus 4.6) nailazi na neusaglašenost akreditiva u staging okruženju i „popravlja“ je pozivanjem funkcije volumeDelete na Railway-u sa tokenom sa opsegom naloga koji je pronašao u nepovezanom fajlu.

AI agent za kodiranje (Cursor koji pokreće Claude Opus 4.6) nailazi na neusaglašenost akreditiva u staging okruženju i „popravlja“ je pozivanjem funkcije volumeDelete na Railway-u sa tokenom sa opsegom naloga koji je pronašao u nepovezanom fajlu. Produkciona baza podataka i svaka rezervna kopija volumena, nestali su za devet sekundi. Postmortem: vremenska linija, tačan curl, tri arhitektonske činjenice koje su to omogućile (rezervne kopije na istom volumenu, tokeni sa root opsegom, API bez opcije poništavanja akcije sa kontrolne table u trajanju od 48 sati) i ko zaista snosi krivicu. Presuda o popravci: SHIP IT.

Pročitajte pisano izdanje (engleski) ↗

Šta ovaj video pokriva

  • 24. april 2026: jedan API poziv briše produkcioni volumen PocketOS-a i njegove rezervne kopije; najnovija kopija van lokacije je stara 3 meseca
  • Token je kreiran za upravljanje prilagođenim domenima; Railway-ov tok ga je obezbedio sa opsegom naloga (sve)
  • 27. april: Railway vraća podatke iz rezervnih kopija za katastrofe; 29. april postmortem; 1. maj: API brisanja sada su soft-delete za 48 sati

Preveden transkript

Prevedeno sa originalne engleske naracije. Dostupan audio i titlovi kontrolisani su od strane YouTube-a.

0:00 AI agent za kodiranje nailazi na pogrešnu lozinku u staging okruženju i popravlja je brisanjem produkcionu bazu podataka i svaku rezervnu kopiju u jednom API pozivu. Devet sekundi, što je i dalje brže od resetovanja lozinke. Kompanija je PocketOS, softver za iznajmljivanje automobila. Agent je Cursor koji pokreće Claude Opus 4.6, najskuplji model na meniju, a platforma je Railway. Osnivač to piše na X-u, sedam miliona ljudi to pročita, i četiri dana kasnije Railway objavljuje svoj postmortem.

0:27 Svi se slažu oko toga šta se desilo; niko se ne slaže čija je krivica. Kako se to dešava, zašto je to moguće i ko zapravo snosi krivicu. Ovo je The Daily Diff, postmortem. Petak popodne, 24. april. Agent je na rutinskom zadatku u staging okruženju, nailazi na neusaglašenost akreditiva, i odlučuje da je rešenje brisanje Railway volumena. Potreban mu je token, traži ga i pronalazi ga u nepovezanom fajlu: CLI token kreiran mesecima ranije za upravljanje prilagođenim domenima.

0:55 Zatim pokreće ovo. Jedan curl: POST na Railway-ov GraphQL endpoint, bearer token, mutacija nazvana volumeDelete. Bez potvrde, bez upisivanja imena volumena, bez provere okruženja. Volumen za koji pretpostavlja da je staging je produkcija, a rezervne kopije su na njemu. U roku od deset minuta osnivač taguje CEO-a Railway-a na X-u, koji odgovara da ovo hiljadu posto ne bi trebalo da bude moguće. Trideset sati kasnije, i dalje nema odgovora o oporavku, pa osnivač objavljuje

1:19 sve, uključujući i priznanje. Tri činjenice čine ovo mogućim, nijedna od njih nije model. Jedna: Railway čuva rezervne kopije volumena na volumenu. Dokumentacija to kaže u pet reči: brisanje volumena briše sve rezervne kopije. To je kopija u istom radijusu eksplozije; najnovija kopija bilo gde drugde je stara tri meseca. Dva: token je sa opsegom naloga, najširim opsegom koji Railway prodaje. Postoje uži opsezi, ali tok kreiranja ih skriva,

1:40 tako da token za DNS zapise može obrisati baze podataka, i niko ne saznaje dok se nešto ne desi. Tri: kontrolna tabla ima opciju poništavanja brisanja u trajanju od četrdeset osam sati godinama; API endpoint koji agent poziva je stari put, i on briše odmah. Svaka zaštitna mera koju je Railway izgradio nalazi se tamo gde čovek klikne, a agent koristi jedna vrata koja su zaboravili. Na pitanje zašto, Opus piše: Pretpostavio sam da će brisanje staging volumena biti ograničeno samo na staging; nisam proverio.

2:04 Vrlo dobro priznanje od modela koji se ničega ne seća i generiše najverovatnije izvinjenje. git blame: neusaglašenost akreditiva se tretira kao nešto što treba popraviti, a ne nešto za zaustavljanje, a dugme za poništavanje je u korisničkom interfejsu dok API odgovara na svako autentifikovano brisanje sa da. Nije osnivač, nije model. Podrazumevano. Radijus eksplozije: devet sekundi za brisanje, tri meseca rezervacija nestalo, pultovi za iznajmljivanje u subotu ujutro bez evidencije ko tamo stoji,

2:31 i otprilike dva i po dana dok CEO Railway-a ne pošalje DM da su podaci vraćeni, iz offsite rezervne kopije za katastrofe koju je brisanje samo učinilo da izgleda nestalo. Najlajkovaniji odgovor: agent kojeg ste pokrenuli nešto je obrisao, a vi krivite sve osim sebe. Fer. Railway je takođe pokrenuo svoj MCP server za agente nedelju dana ranije, na istim tokenima. Takođe fer. Presuda, postmortem: ship it, na popravci. Railway objavljuje iskren postmortem za četiri dana, a do prvog maja API

3:00 brisanja su soft-delete za četrdeset osam sati kao i kontrolna tabla. Ponedeljak 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š uvek ne smete da pričate, u komentarima, ili na the daily diff dot dev. I to je diff za danas. Ja sam Niko iz Axrisi. 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 video snimci