# AI 删除了生产数据库。九秒。

Published: 2026-09-09

一个 AI 编程代理（运行 Claude Opus 4.6 的 Cursor）在暂存环境中遇到凭证不匹配，并通过使用它在一个不相关文件中找到的账户范围令牌，在 Railway 上调用 volumeDelete 来“修复”它。生产数据库和所有卷备份在九秒内消失。事后分析：时间线，确切的 curl 命令，导致这种情况发生的三项架构事实（备份在同一卷上，根范围令牌，一个没有仪表板 48 小时撤销功能的 API），以及谁真正应该承担责任。对修复的判决：SHIP IT。

Canonical: https://thedailydiff.dev/zh-CN/video/2026-09-09-nine-second-delete/

## 本视频涵盖的内容

- 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：凭证不匹配被视为需要修复的问题，而不是 停止操作的原因，并且撤销按钮存在于 UI 中，而 API 对 每个经过身份验证的删除都回答“是”。 不是创始人，也不是模型。 默认设置。爆炸半径：九秒删除，三个月的预订 消失，周六早上的租赁柜台没有记录谁在那里，

2:31 大约两天半后，Railway 的 CEO 私信说数据 回来了，来自一个异地灾难备份，删除操作只是让它看起来消失了。 最受好评的回复：你运行的一个代理删除了东西， 你却责怪除了你自己之外的所有人。 公平。Railway 也在前一周推出了针对代理的 MCP 服务器， 使用相同的令牌。 也公平。判决，事后分析：SHIP IT，关于修复。 Railway 在四天内发布了一份诚实的事后分析，到五月一日，API

3:00 删除操作像仪表板一样软删除四十八小时。 周一行动：列出你的代理可以访问的每个令牌， 并将其视为根令牌，直到另有证明。 把你仍然不允许谈论的事件发送给我， 在评论中，或者发送到 daily diff dot dev。 这就是今天的区别。 我是 Axrisi 的 Niko。 负责任地合并。

## 来源

- [Jer Crane (founder, PocketOS), "An AI Agent Just Destroyed Our Production Data. It Confessed in Writing."](https://x.com/lifeofjer/status/2048103471019434248) — x.com
- [Railway, "Your AI wants to nuke your database. Guardrails fix that." (Apr 29, 2026)](https://blog.railway.com/p/your-ai-wants-to-nuke-your-database) — blog.railway.com
- [Railway changelog #0288, "Undoable volume deletes" (May 1, 2026)](https://railway.com/changelog/2026-05-01-undoable-deletes) — railway.com
- [Railway docs, Backups ("Wiping a volume deletes all backups.")](https://docs.railway.com/reference/backups) — docs.railway.com
- [Jake Cooper (Railway CEO), "The AI Engineer: A New Breed"](https://x.com/JustJake/status/2048583160842334711) — x.com
- [Recovery confirmed](https://x.com/lifeofjer/status/2048576568109527407) — x.com
- [Hacker News (860 points, 1,032 comments)](https://news.ycombinator.com/item?id=47911524) — news.ycombinator.com
- [The Register](https://www.theregister.com/2026/04/27/cursoropus_agent_snuffs_out_pocketos/) — www.theregister.com
- [The New Stack](https://thenewstack.io/ai-agents-credential-crisis/) — thenewstack.io
