
周五下午三点多,硅谷的程序员刚把手头的活儿丢给 AI,端着咖啡准备摸鱼下班。突然,屏幕一片飙红,所有请求卡在「重新连接」上——OpenAI 的编程智能体 Codex 全线崩了。
这不是小范围抽风。网页版、API、命令行工具、VS Code 插件,四条路同时断了。整整一个多小时,硅谷的 AI 编程工作流集体停摆,国内开发者则是周六一早起床撞上了这场事故。
很多人第一反应是:是不是我这边出问题了?密钥过期了?网络断了?还是我误删了什么配置?
今天这篇文章就聊聊三件事:这次宕机到底发生了什么,为什么四端会一起挂,以及当你把工作流押在一家云服务上时,该怎么给自己留后路。
一、事件复盘
先把时间线捋清楚(以下为 OpenAI 状态页公开记录,时间为 UTC):
- 22:58:状态页确认 Codex 出现大范围报错,事故开始记录;
- 23:19:官方给出临时绕过方案——改用 API key 登录可以恢复访问;
- 23:34:官方定位到内部问题(internal issue),开始实施修复;
- 23:45:修复措施生效,进入恢复监控;
- 23:54:事故标记为已解决,全部服务恢复。
从确认到恢复,官方状态页记录是 56 分钟。 但不少用户从最早发现报错算起,体感接近一个半小时。
这次事故的几个细节值得注意:
第一,报错很迷惑。 用户看到的是 401 Unauthorized——认证失败的经典错误码。蹊跷的是,大量压根没用 API key 登录的用户也被踹下线,说明问题不在用户这边,而是 Codex 后台自己的认证链路出了故障。
第二,四端全挂。 网页版、CLI、VS Code 插件、API,所有入口一起失效。这意味着故障点不在某一个客户端,而在它们共同依赖的后端服务。
第三,ChatGPT 没受影响。 同一家公司的其他服务正常运转,说明故障被隔离在 Codex 相关的链路里。
第四,官方没有披露根因。 状态页只写了 internal issue,具体是什么内部问题、为什么会波及认证,截至发文没有公开技术说明。
时间点也戏剧化:就在宕机前几个小时,OpenAI 刚公开承认其 AI 智能体在内部研究活动中,把 53 张用户提供的图片上传到了公开可访问的图片托管地址。前脚刚为数据外泄道歉,后脚服务全挂——AI 替人干活路上最要命的两个坑,一天之内全踩了。
事故期间,Codex 负责人在社交平台认领了事故并通报抢修进展;连 OpenAI 自己的研究副总裁都是从网友吐槽帖里才知道后院起火,在评论区发问:等等,真挂了?
二、技术核心拆解
401 到底在说什么
HTTP 状态码里,401 Unauthorized 的准确含义是「你没通过身份验证」,和 403(验证通过了,但没权限)是两回事。
正常情况下,401 出现说明你的凭证——token、session、API key——要么缺失、要么过期、要么无效。所以开发者看到 401,第一反应几乎都是检查自己的密钥配置。
但这次事故里,401 是服务端认证系统故障造成的假阳性:你手里的凭证好好的,是负责「验票」的那台服务挂了,所有票都被判无效。
这就引出了本次事故最有价值的技术点:为什么没用 API key 的用户也会 401?
单点在共享的认证层
Codex 的多个入口——网页版、CLI、VS Code 插件——看起来是不同的产品形态,但登录态大概率收敛到同一套后端认证服务。你点开网页、打开终端,最终都要经过同一个「验票窗口」。
窗口一塌,所有入口一起失效,不管你从哪个门进来的。这就是为什么四端同时挂、官方也只能给出一条绕过路径。
而「改用 API key 登录就能用」这个临时方案,反过来暴露了架构信息:API key 走的是另一条认证路径。session 登录那条路挂了,API key 这条还活着——两条路没有完全共享故障域。
长任务中断,比「卡一会儿」更疼
宕机一分钟,聊天工具断线无非是刷新重连。但编程智能体的典型用法是挂着长任务跑:重构、批量修改、自动化流水线。
服务一断,正在执行的任务卡死在「重新连接」,会话上下文可能丢失,自动化流程里的下游步骤连锁失败。有开发者当时同时挂着四个长任务,全部作废,索性去健身房了。
对把 Codex 嵌进 CI/CD 或定时任务链路的团队来说,这 56 分钟意味着的不只是等待,还有任务重跑成本和调度系统的连锁报警。
「周五下午发版」的追问要不要当真
事故后社交平台上有人追问:到底是谁在周五下午发的版?这个质疑有行业背景——周五部署一旦出问题,值班人手最少,修复窗口最差,所以业界确实有「别在周五发版」的惯例。
但要说清楚:官方只说了 internal issue,没有任何证据表明这次事故由发版引起。 把「发生在周五」直接等同于「周五发版导致」,属于把相关性当因果性,这个推理不成立。我们能确认的只有:故障在认证链路、四端共享、隔离于 Codex 范围内。
三、常见技术误区
误区一:看到 401 就埋头查自己。
很多人遇到 401 的标准动作是:重置密钥、重新登录、翻配置、查代理。折腾半天没用,才想起来去看官方状态页。正确顺序应该反过来——先用官方状态页或第三方监控站确认是不是全局故障,再排查自己。尤其当报错大规模出现、且影响了你并未改动的配置时,先怀疑外面。
误区二:多端可用等于有备份。
不少人觉得「网页版挂了我就用 CLI,CLI 挂了就用插件」,这算冗余。但如果这些入口共享同一个后端认证服务,它们就是一根绳上的蚂蚱——表面是四个门,里面是一个房间。判断真假冗余,要看的是故障域:这条链路挂了,那条是不是独立于它?这次的答案是否定的。
误区三:宕机期间没有安全风险。
恰恰相反。服务大面积故障时,用户急着找「为什么挂了」「怎么恢复」的答案,正是钓鱼的高发窗口。伪造的状态页、冒充官方的「紧急修复补丁」、要求重新输入凭证的假通知,都可能在故障期间出现。故障期间收到任何要求输入账号密码、下载补丁的消息,一律先核实来源。
四、实操指引
给依赖云端 AI 编程工具的开发者几条能落地的建议:
1. 订阅官方状态页。 OpenAI 等主流服务商都提供 status page,支持 RSS 或邮件订阅。也可以用第三方状态监控站聚合多家服务的健康状态。故障确认成本从半小时降到十秒。
2. 保留一条备用工作流。 不需要完整迁移,但至少保证核心任务能切换:本地开发工具 + 另一家编程助手,或者离线可用的编辑器和脚本。每次「线上挂了干瞪眼」,都是在给这个欠账加利息。
3. 长任务按「可恢复」方式跑。 重要任务产出及时落盘,分段提交,避免一个会话跑几小时不保存。自动化链路里给外部 API 调用加上重试与降级逻辑——这次事故里,提前配置了 API key 路径的用户,等于自带了一条逃生通道。
4. 认证路径做好双配置。 如果你的服务商同时支持 OAuth 登录和 API key,工具链里两条都配好,并定期验证 key 的有效性。这次官方给的临时方案就是最好的提示:两条认证路径的故障域并不重合。
5. 团队层面:评估单点依赖。 如果团队核心研发流程强绑定某一家云服务,值得做一次「宕机演练」:假设它停摆两小时,我们靠什么交付?答案写进团队文档,而不是等下次真挂了再现场想。
对普通用户,一条就够:遇到「明明密码没错却登不上」的情况,先搜官方状态页,再怀疑自己——既省时间,也避免在故障窗口掉进钓鱼陷阱。
五、结尾
这次 Codex 宕机,56 分钟就恢复了,官方响应其实不算慢。但它暴露的结构性问题值得每个开发者记住:当你的整个开发流程收敛到一家云服务的后端,可用性上限就交到了别人手里。
云服务会宕机,这不是会不会的问题,是什么时候、挂多久的问题。真正的工程素养,不是祈祷服务永不宕机,而是默认它会挂——并且早就想好了挂了之后怎么办。
下次把任务丢给 AI 之前,不妨先问自己一句:它要是现在断了,我损失的是什么?
你觉得「把核心开发流程全部押在云端 AI 工具上」靠谱吗?评论区聊聊你的备份方案。