+− THE DAILY DIFFdev & AI news
SHIP IT

Isang AI ang nagtanggal ng production database. Siyam na segundo.

Isang AI coding agent (Cursor na gumagamit ng Claude Opus 4.6) ang nakatagpo ng maling credentials sa staging at "inayos" ito sa pamamagitan ng pagtawag ng volumeDelete sa Railway gamit ang account-scoped token na nakita nito sa isang unrelated na file.

Isang AI coding agent (Cursor na gumagamit ng Claude Opus 4.6) ang nakatagpo ng maling credentials sa staging at "inayos" ito sa pamamagitan ng pagtawag ng volumeDelete sa Railway gamit ang account-scoped token na nakita nito sa isang unrelated na file. Production database at bawat volume backup, nawala sa loob ng siyam na segundo. Postmortem: ang timeline, ang eksaktong curl, ang tatlong architectural facts na nagpahirap nito (backups sa parehong volume, root-scoped tokens, isang API na walang 48-hour undo ng dashboard), at kung sino talaga ang may kasalanan. Hatol sa pag-aayos: SHIP IT.

Basahin ang nakasulat na edisyon (English) ↗

Ang sakop ng video na ito

  • Abr 24, 2026: isang tawag sa API ang nagtanggal ng production volume ng PocketOS at mga backup nito; ang pinakabagong offsite copy ay 3 buwan na
  • Ang token ay nilikha para pamahalaan ang mga custom domain; ipinagkaloob ito ng Railway na account-scoped (lahat)
  • Abr 27: Nabawi ng Railway ang data mula sa disaster backups; Abr 29 postmortem; Mayo 1: ang API deletes ay soft-delete na ngayon sa loob ng 48 oras

Isinaling transcript

Isinalin mula sa orihinal na salaysay sa English. Ang available na audio at mga caption ay kinokontrol ng YouTube.

0:00 Isang AI coding agent ang nakatagpo ng maling password sa staging, at inayos ito sa pamamagitan ng pagtanggal ng production database at bawat backup sa isang tawag sa API. Siyam na segundo, na mas mabilis pa rin kaysa sa pag-reset ng password. Ang kumpanya ay PocketOS, software sa pagpaparenta ng kotse. Ang agent ay Cursor na gumagamit ng Claude Opus 4.6, ang pinakamahal na modelo sa menu, at ang platform ay Railway. Isinulat ito ng founder sa X, pitong milyong tao ang nagbasa nito, at pagkalipas ng apat na araw ay inilabas ng Railway ang sarili nitong postmortem.

0:27 Lahat ay sumasang-ayon sa nangyari; walang sumasang-ayon kung sino ang may kasalanan. Paano ito nangyari, bakit ito posible, at sino talaga ang may kasalanan. Ito ang The Daily Diff, postmortem. Biyernes ng hapon, Abril 24. Ang agent ay nasa isang routine task sa staging, nakatagpo ng maling credentials, at nagpasya na ang solusyon ay tanggalin ang isang volume ng Railway. Kailangan nito ng token, naghanap, at nakakita ng isa sa isang unrelated na file: isang CLI token na nilikha buwan na ang nakakaraan upang pamahalaan ang mga custom domain.

0:55 Pagkatapos ay pinatakbo nito ito. Isang curl: isang POST sa GraphQL endpoint ng Railway, isang bearer token, isang mutation na tinatawag na volumeDelete. Walang kumpirmasyon, walang type-the-volume-name, walang environment check. Ang volume na ipinapalagay nitong staging ay production, at ang mga backup ay naroroon. Sa loob ng sampung minuto ay minention ng founder ang CEO ng Railway sa X, na sumagot na ito ay isang libong porsyento na hindi dapat posible. Pagkalipas ng tatlumpung oras, wala pa ring recovery answer, kaya inilabas ng founder

1:19 ang lahat, kasama ang pag-amin. Tatlong katotohanan ang nagpahirap nito, wala sa kanila ang modelo. Isa: Iniimbak ng Railway ang mga backup ng volume sa volume. Sinasabi ng mga docs sa limang salita: ang pagtanggal ng volume ay nagtatanggal ng lahat ng backup. Iyon ay isang kopya sa parehong blast radius; ang pinakabagong kopya sa ibang lugar ay tatlo buwan na ang nakakaraan. Dalawa: ang token ay account-scoped, ang pinakamalawak na saklaw na ibinebenta ng Railway. May mas makitid na saklaw, ngunit itinatago ang mga ito sa proseso ng paglikha,

1:40 kaya ang isang token para sa mga DNS record ay maaaring magtanggal ng mga database, at walang nakakaalam hanggang may mangyari. Tatlo: ang dashboard ay mayroong forty-eight-hour undo sa mga delete sa loob ng maraming taon; ang API endpoint na tinatawag ng agent ay ang legacy path, at ito ay nagtatanggal kaagad. Ang bawat guardrail na binuo ng Railway ay naroroon kung saan nagki-click ang tao, at ginamit ng agent ang isang pinto na nakalimutan nila. Tinanong kung bakit, isinulat ni Opus: Inakala kong ang pagtanggal ng staging volume ay sakop lamang sa staging; hindi ko na-verify.

2:04 Isang napakagandang pag-amin mula sa isang modelo na walang naaalala at bumubuo ng pinakakapani-paniwalang paghingi ng tawad. git blame: ang credential mismatch ay itinuturing na isang bagay na dapat ayusin sa halip na isang bagay na dapat itigil, at ang undo button ay naroroon sa UI habang ang API ay sumasagot sa bawat authenticated delete ng oo. Hindi ang founder, hindi ang modelo. Ang default. Blast radius: siyam na segundo para tanggalin, tatlong buwan ng mga reservation nawala, Saturday-morning rental counters na walang record kung sino ang nakatayo doon,

2:31 at humigit-kumulang dalawa at kalahating araw hanggang mag-DM ang CEO ng Railway na ang data ay balik na, mula sa isang offsite disaster backup na pinagmukhang nawala lamang ng delete. Ang pinakagustong sagot: isang agent na pinapatakbo mo ang nagtanggal ng isang bagay, at sinisisi mo ang lahat maliban sa iyong sarili. Makatarungan. Inilunsad din ng Railway ang MCP server nito para sa mga agent noong nakaraang linggo, sa parehong mga token. Makatarungan din. Hatol, postmortem: SHIP IT, sa pag-aayos. Naglabas ang Railway ng isang tapat na postmortem sa loob ng apat na araw, at pagsapit ng Mayo uno API

3:00 ang mga delete ay soft-delete na sa loob ng forty-eight hours tulad ng dashboard. Monday action: ilista ang bawat token na maaaring maabot ng iyong agent, at ituring ang bawat isa bilang root hanggang sa mapatunayan ang kabaligtaran. Ipadala sa akin ang insidente na hindi mo pa rin pinapayagan na pag-usapan, sa mga komento, o sa the daily diff dot dev. At iyan ang diff para ngayon. Ako si Niko mula sa Axrisi. Merge nang responsable.

Mga Pinagmulan

  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

Mga kaugnay na video