+− THE DAILY DIFFdev & AI news
SHIP IT

一個 AI 刪除了生產資料庫。九秒。

一個 AI 編碼代理 (Cursor 運行 Claude Opus 4.6) 在測試環境中遇到憑證不符,並「修復」它,方法是使用它在不相關檔案中找到的帳戶範圍令牌在 Railway 上呼叫 volumeDelete。

一個 AI 編碼代理 (Cursor 運行 Claude Opus 4.6) 在測試環境中遇到憑證不符,並「修復」它,方法是使用它在不相關檔案中找到的帳戶範圍令牌在 Railway 上呼叫 volumeDelete。生產資料庫和所有磁碟區備份,九秒內消失。事後分析:時間線、確切的 curl、使其成為可能的三個架構事實(備份位於同一磁碟區、根範圍令牌、沒有儀表板 48 小時撤銷功能的 API),以及誰真正應受譴責。修復的裁決:SHIP IT。

閱讀書面版本(英文) ↗

本影片涵蓋的內容

  • 2026 年 4 月 24 日:一個 API 呼叫刪除了 PocketOS 的生產磁碟區及其備份;最新的異地副本已是 3 個月前。
  • 該令牌最初是為管理自訂網域而建立的;Railway 的流程將其配置為帳戶範圍(所有內容)。
  • 4 月 27 日:Railway 從災難備份中恢復資料;4 月 29 日事後分析;5 月 1 日:API 刪除現在可軟刪除 48 小時。

翻譯的文字記錄

從英文原文旁白翻譯。可用的音頻和字幕由 YouTube 控制。

0:00 一個 AI 編碼代理在測試環境中遇到錯誤密碼,並透過刪除來修復它 生產資料庫和所有備份,只需一次 API 呼叫。 九秒,這仍然比重設密碼快。 這家公司是 PocketOS,汽車租賃軟體。 該代理是運行 Claude Opus 4.6 的 Cursor,這是菜單上最昂貴的模型, 平台是 Railway。 創辦人在 X 上發文,七百萬人閱讀了它, 四天後 Railway 發布了自己的事後分析。

0:27 每個人都同意發生了什麼事;但沒人同意是誰的錯。 它是如何發生的,為什麼會發生,以及誰真正該受責備。 這是 The Daily Diff,事後分析。 4 月 24 日星期五下午。 該代理正在測試環境中執行例行任務,遇到憑證不符, 並決定解決方案是刪除 Railway 磁碟區。 它需要一個令牌,於是去尋找,並在一個不相關的檔案中找到一個:一個 CLI 幾個月前為管理自訂網域而建立的令牌。

0:55 然後它執行這個。 一個 curl:對 Railway 的 GraphQL 端點發出 POST,一個 bearer 令牌, 一個名為 volumeDelete 的 mutation。 沒有確認,沒有輸入磁碟區名稱,沒有環境檢查。 它假設是測試環境的磁碟區是生產環境的,並且備份都在上面。 在十分鐘內,創辦人在 X 上標註了 Railway 的 CEO, 他回復說這百分之千不應該發生。 三十小時後,仍然沒有恢復答案,所以創辦人發布了

1:19 所有內容,包括供詞。 三個事實使這成為可能,沒有一個是模型的原因。 一:Railway 將磁碟區備份儲存在磁碟區上。 文件用五個字說明:清除磁碟區會刪除所有備份。 那是一個在同一爆炸半徑內的副本;其他任何地方最新的副本都是三 個月前。二:令牌是 帳戶範圍的,這是 Railway 出售的最廣泛的範圍。 存在較窄的範圍,但創建流程隱藏了它們,

1:40 所以一個用於 DNS 記錄的令牌可以刪除資料庫,而且直到 發生某些事情時才被發現。三:儀表板多年來對刪除操作一直有四十八小時的撤銷功能; 該代理呼叫的 API 端點是舊版路徑, 它會立即刪除。 Railway 建立的每個防護措施都存在於人類點擊的地方, 而代理則使用了他們遺忘的那扇門。 被問及原因時,Opus 寫道:我猜測刪除測試環境磁碟區只會作用於 測試環境;我沒有驗證。

2:04 這是一個模型非常好的供詞,它不記得任何事情,只是生成了 最合理的道歉。 git blame:憑證不符被視為需要修復的東西,而不是 應該停止的地方,而且撤銷按鈕存在於使用者介面中,而 API 對 每個經過驗證的刪除都回答「是」。 不是創辦人,也不是模型。 預設。爆炸半徑:九秒內刪除,三個月的預訂 消失,星期六早上租車櫃檯沒有任何記錄誰站在那裡,

2:31 大約兩天半後,Railway 的 CEO DM 表示資料已經 回來了,來自一個異地災難備份,而刪除只是讓它看起來消失了。 最受歡迎的回覆:你運行的一個代理刪除了東西, 你怪罪所有人,除了你自己。 公平。Railway 也在前一周為代理啟動了其 MCP 伺服器, 使用相同的令牌。 也公平。裁決,事後分析:SHIP IT,關於修復。 Railway 在四天內發布了一份誠實的事後分析報告,到 5 月 1 日,API

3:00 刪除像儀表板一樣軟刪除四十八小時。 週一行動:列出你的代理可以訪問的每個令牌, 並將每個令牌視為根權限,直到證明不是為止。 把你仍然不允許談論的事件寄給我, 在評論中,或在 the daily diff dot dev。 這就是今天的差異。 我是 Axrisi 的 Niko。 負責任地合併。

來源

  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

相關影片

postmortem · zh-HK · 2026年9月10日

一名工程師刪除了 GitLab 的生產數據庫。300 GB。

2017 年 1 月 31 日,世界標準時間 23:27:一名 GitLab 工程師在漫長夜晚的尾聲,與一個損壞的副本奮鬥,結果移除了 db1 上的 PostgreSQL 數據目錄,而不是 db2。db1 是主要數據庫。GitLab.com 大約 300 GB 的數據庫在一兩秒鐘內消失了,而且五個備份和複製機制中,沒有一個在正常運作。事後分析:從垃圾郵件激增到錯誤的主機名,為什麼 pg_baseb

2:53 ↗
postmortem · zh-HK · 2026年9月22日

重啟令 Telstra 倒退回 2006 年。九百萬部電話。

墨爾本的一名工程師在凌晨 2 時 50 分重啟計時機箱,到早餐時,澳洲最大的流動網絡竟以為是 2006 年 11 月。2026 年 7 月 8 日:Telstra NTP 機箱中的 GPS 卡在更換電源期間重啟,其韌體從未有 GPS 週數滾動更新,因此它選擇了舊的紀元,倒退了 1,024 週。由於 2025 年 10 月的變通方法使該卡成為網絡唯一的 stratum-1 來源 — 以及 2020

3:15 ↗
postmortem · zh-HK · 2026年9月19日

Google Cloud 在空白欄位當機。三小時。

一個帶有幾個空白欄位的策略行觸發了空指標,Google Cloud 立即在所有區域當機 — 然後 Cloudflare 也隨之故障。2025 年 6 月 12 日,世界標準時間 17:49:Service Control,一個批准所有 Google Cloud API 請求的二進位檔案,讀取了一個帶有「非預期空白欄位」的配額策略變更,觸發了兩週前發布但沒有空值檢查和功能旗標的程式碼路徑,並在所有區

2:57 ↗