AI 删除了生产数据库。九秒。
一个 AI 编程代理(运行 Claude Opus 4.6 的 Cursor)在暂存环境中遇到凭证不匹配,并通过使用它在一个不相关文件中找到的账户范围令牌,在 Railway 上调用 volumeDelete 来“修复”它。
一个 AI 编程代理(运行 Claude Opus 4.6 的 Cursor)在暂存环境中遇到凭证不匹配,并通过使用它在一个不相关文件中找到的账户范围令牌,在 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:凭证不匹配被视为需要修复的问题,而不是 停止操作的原因,并且撤销按钮存在于 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."x.com
- Railway, "Your AI wants to nuke your database. Guardrails fix that." (Apr 29, 2026)blog.railway.com
- Railway changelog #0288, "Undoable volume deletes" (May 1, 2026)railway.com
- Railway docs, Backups ("Wiping a volume deletes all backups.")docs.railway.com
- Jake Cooper (Railway CEO), "The AI Engineer: A New Breed"x.com
- Recovery confirmedx.com
- Hacker News (860 points, 1,032 comments)news.ycombinator.com
- The Registerwww.theregister.com
- The New Stackthenewstack.io



