在 Mac 上点菜单栏的「ChatGPT → Check for Updates」,弹出 "Update Error!" 和 "An error occurred in retrieving update information. Please try again later.",系统语言是简体中文时可能显示为「更新错误!」「获取升级信息时出现错误,请稍后再试。」;如果应用日志里同时有 SUSparkleErrorDomain Code=2001 和 server error (520),这是 2026 年 10 月中旬 OpenAI 更新服务器的故障,不是你的电脑、网络或安装出了问题。OpenAI 员工在 GitHub 的 #53891 里于北京时间 2026 年 10 月 22 日 01:29(UTC 10 月 21 日 17:29)回复 "This is fixed!" 并关闭了问题,修复在服务器端完成,不需要先装新版本。
现在只需要做一件事:按 ⌘Q 彻底退出 ChatGPT(只关窗口不算),重新打开后再点一次检查更新。仍然报错,再按下文"现在还提示更新失败"一节的顺序处理;想先知道自己是不是已经是最新版,看"更新器报错时怎样确认版本"那一节,不依赖更新器也能核对。
关于名字:2026 年 7 月 9 日起,Codex app 并入了 Mac 和 Windows 上的 ChatGPT 桌面版(见 ChatGPT 更新日志)。所以 Mac 上的应用叫 ChatGPT.app,内部标识仍是 com.openai.codex,「关于」窗口里写着 "Powered by Codex & OWL"。下文的"桌面版"指的就是它。
哪种"更新失败"才是这次的 520:按弹窗原文对照
更新失败不止这一种。先用你看到的提示对一下表,不是第一行的情况,处理方法完全不同。
| 你看到的 | 说明什么 | 先做什么 |
|---|---|---|
「获取升级信息时出现错误,请稍后再试」(英文 "An error occurred in retrieving update information"),日志里是 Code=2001 加 server error (520) | 这次的更新源故障:应用连更新信息都没拿到 | 已修复;彻底退出后重新检查 |
| 设置 → 通用里有 "In-app updates: Managed",提示 "Your organization has turned off in-app updates." | 组织管理员按策略关掉了应用内更新,与 520 无关 | 找管理员,由公司的设备管理平台推送新版 |
| 「此更新未正确签名,无法验证其真实性」("The update is improperly signed and could not be validated") | 下载到的更新包没通过签名校验,见 #28369,截至 10 月 22 日仍未关闭 | 不要关掉校验,从官方地址下载安装包覆盖安装 |
| 「您的macOS版本太旧了」("Your macOS version is too old") | 系统低于新版本要求;截至 2026 年 10 月 22 日,最新版要求 macOS 13.0 或更高 | 先升级 macOS |
| 下载进度反复从 0 开始 | 约 684 MB 的更新包在不稳定的网络下没能续传,见 #51903 | 换稳定的网络,或直接下载官方安装包 |
| Windows 上更新失败,或更新后打不开 | 不是这次故障:520 的报告全部来自 Mac,Windows 版走自己的更新途径(应用内、Microsoft Store、Intune 等) | 更新后启动报 app-server 错误的,看 Codex app-server 启动失败:按报错原文对症修,先别删 .codex |
第一行的弹窗本身不显示 520,这个状态码只在日志里出现,而 OpenAI 没有公开桌面版日志的存放位置。不看日志也能判断:弹窗原文对得上、出现在 10 月 13 日到 22 日之间、用的是 Mac,基本就是这次的故障。
「获取升级信息时出现错误」加 520:问题出在 OpenAI 的更新服务
日志里那一段大致是这样(查询参数省略):
SUSparkleErrorDomain Code=2001
A network error occurred while downloading
https://updates.oaistatic.com/codex/app/appcast?...
server error (520)拆开看,每一部分都指向服务器那一侧:
- Code=2001:桌面版用开源更新框架 Sparkle 检查更新。在 Sparkle 的错误码定义里,2001 是
SUDownloadError,意思是获取更新信息时网络请求失败;如果更新信息拿到了却解析不了,报的会是 1002(SUAppcastError)。 - appcast:Sparkle 的更新信息地址,返回一份列出最新版本号、下载地址和最低系统要求的 XML。桌面版请求的是
https://updates.oaistatic.com/codex/app/appcast,后面带着安 装 ID、芯片架构、当前版本、系统版本等参数。 - 520:Cloudflare 的状态码。按 Cloudflare 的说明,它表示源站给 Cloudflare 返回了空的、无法识别的或异常的响应;能做的修复全在网站方,访问者这边没有办法。
所以这三样组合起来的意思是:请求已经到了 OpenAI 的 CDN,是后面的更新服务没有正常应答。GitHub 上的报告里,重启 Mac、清 DNS 缓存都没有用。

受影响的范围也说明不是个别电脑的问题。报告覆盖了 26.1007.30912 到 26.1016.51333 之间的多个版本,以及 macOS 15.2、26.5.2、26.7.1、27.0、27.0.1 等多个系统版本,都是 Apple 芯片的 Mac,没有 Intel 机型的公开报告。
不少人试过从官方地址下载新版覆盖安装:应用版本号确实变了,可「检查更新」照样报错。有用户在 issue 里分析过应用包:故障期间,静态更新源 https://persistent.oaistatic.com/codex-app-prod/appcast.xml 一直返回 200,出问题的只是动态地址 updates.oaistatic.com,而正式版只用动态地址,失败时不会退回静态源,所以重装修不好。这是用户的逆向分析,OpenAI 没有确认。
故障还和网络出口有关,但没有规律。#55084 里,同一台 Mac 走 IPv6 得到 520、走 IPv4 正常;有人切到手机热点就好了,也有人热点照样失败;还有人好了几天后又复发。这些都是个人报告,OpenAI 没有公布原因。
修好了吗:OpenAI 于北京时间 10 月 22 日 01:29 宣布已修复
按 GitHub #53891 的记录(时间换算为北京时间):
- 10 月 13 日晚(美国当地时间):最早有用户发现检查更新失败。
- 10 月 14 日 14:42:#53891 提出,标题是 "[macOS] Update checks fail because appcast endpoint returns HTTP 520"。之后 #54144、#54296、#54364、#54392 作为重复报告并入,IPv6 情形的 #55084 也作为重复关闭。
- 10 月 14 日到 21 日:新版本陆续发布,报告一直没断,包括手动装上新版后仍然失败的。
- 10 月 22 日 00:04:OpenAI 员工 Robbie Ostrow 回复已经找到问题,修复很快上线。
- 10 月 22 日 01:22:有用户回复已经恢复。
- 10 月 22 日 01:29:Robbie Ostrow 回复 "This is fixed!" 并把 issue 标为完成关闭。
- 10 月 22 日 09:16:静态更新源里才出现下一个版本 26.1016.61520。
用户确认恢复的时间早于新版本发布,说明修复是在服务器端做的,你不需要先升级应用,更新器本身就应该能用了。截至 2026 年 10 月 22 日,#53891 关闭后没有新回复,openai/codex 里也没有新开的 520 报告。
还不知道的几件事:OpenAI 没有公布故障原因;没有说明是否每台受影响的 Mac 都已自动恢复;也没有说修复后要不要重启应用。所以下一节的第一步是彻底退出再试,而不是等待。
现在还提示更新失败:按这个顺序处理

第 1 步:彻底退出 ChatGPT,再检查更新
按 ⌘Q,或在菜单栏选「ChatGPT → Quit ChatGPT」。只关窗口不一定会让应用真正退出,OpenAI 的 Manage app updates 文档也特别提醒了这一点。重新打开后点「Check for Updates」:
- 显示 "You're up to date!"(中文系统可能是「您使用的就是最新版!」)或提示有新版本可下载,说明已经恢复,到此为止。
- 仍然是「获取升级信息时出现错误」,继续第 2 步。
第 2 步:看设置里有没有 "In-app updates: Managed"
打开设置 → 通用(Settings → General),找 "In-app updates" 这一行。如果显示 "Managed",并附有 "Your organization has turned off in-app updates.",说明你所在的 Business 或 Enterprise 工作区用策略关掉了应用内更新。按官方文档,这时「Check for Updates」菜单可能还在,但不起作用;新版本要由公司通过 MDM、Intune 等设备管理平台推送,找管理员处理。
没有这一行,就不是托管的问题,继续第 3 步。
第 3 步:用官方安装包覆盖安装
从 OpenAI 文档给出的地址下载 macOS 安装包:https://persistent.oaistatic.com/codex-app-prod/ChatGPT.dmg(截 至 2026 年 10 月 22 日约 813 MB),打开后把 ChatGPT 拖进「应用程序」文件夹,替换旧版。
GitHub 评论里流传的另一个地址 https://persistent.oaistatic.com/codex-app-prod/Codex.dmg 截至 10 月 22 日比 ChatGPT.dmg 旧一个版本,优先用文档里的 ChatGPT.dmg。
覆盖安装能让你马上用上新版,但修不好更新源:故障期间,很多人装完新版后检查更新照样失败。装完之后回到第 1 步再检查一次。
第 4 步:还是失败,向 OpenAI 报告
#53891 已经关闭。修复后仍然稳定复现的,在 openai/codex 新开一个 issue,或用应用内的反馈功能提交。写清楚版本号和构建号、macOS 版本、芯片类型、出错时间(带时区),以及是否开着代理或 VPN。不要原样贴出日志或请求地址:里面带着你的安装 ID。
这几种做法不要用
- 关闭 TLS 证书或更新签名校验,修改、重新签名 ChatGPT.app,或者从网盘和第三方镜像下载安装包。安装包只从上面的官方地址下载。
- issue 里流传过一个绕路办法:把
~/Library/Application Support/com.openai.codex/production-appcast-bootstrap.json里的backendAppcastEnabled从 true 改成 false,让应用改用静态更新源;因为应用会自己把它改回 true,又加了一个每秒检查一次、再把它改成 false 的后台任务。服务器修好后,这套办法已经没有必要。这个办法从来不是 OpenAI 支持的做法,不要再装。已经装过的,按原帖里的移除步骤撤掉:停掉那个 launchd 任务,再把backendAppcastEnabled改回 true,然后彻底退出、重新打开 ChatGPT,让应用回到默认的更新方式。
更新器报错时怎样确认版本:对照静态更新源
更新器坏了的时候,可以自己比对两个数:你装的版本,和 OpenAI 静态更新源里的最新版本。整个故障期间静态更新源都正常,可以放心拿来参照。
看已安装的版本:菜单栏「ChatGPT → About ChatGPT」里有版本号。
看最新版本:用浏览器打开静态更新源,第一个 <item> 里的 <title> 就是最新版本号:
- Apple 芯片:
https://persistent.oaistatic.com/codex-app-prod/appcast.xml - Intel:
https://persistent.oaistatic.com/codex-app-prod/appcast-x64.xml
截至 2026 年 10 月 22 日,两个源的最新版都是 26.1016.61520(构建号 21421,北京时间 10 月 22 日 09:16 发布),最低系统要求 macOS 13.0。这个版本号一周会变好几次,以你打开时看到的为准。
习惯用终端的话,下面几行可以直接复制运行(只读,不改任何文件):
# 已安装的版本号和构建号(应用不在 /Applications 时换成实际路径)
/usr/libexec/PlistBuddy -c 'Print :CFBundleShortVersionString' /Applications/ChatGPT.app/Contents/Info.plist
/usr/libexec/PlistBuddy -c 'Print :CFBundleVersion' /Applications/ChatGPT.app/Contents/Info.plist
# 芯片类型:arm64 是 Apple 芯片,x86_64 是 Intel
uname -m
# 静态更新源里的最新版本(Intel 机型把 appcast.xml 换成 appcast-x64.xml)
curl -s https://persistent.oaistatic.com/codex-app-prod/appcast.xml \
| grep -m1 -o '<sparkle:shortVersionString>[^<]*' | sed 's/.*>//'两个版本号一样,你就是最新版,即使更新器还在报错也不急着处理;已安装的更旧,按上一节第 3 步用官方安装包覆盖安装。
用 curl 测更新源:400、520、200 分别说明什么
有人会自己用 curl 请求更新地址来判断故障有没有恢复。看到的状态码这样理解:
| 请求 | 结果 | 说明什么 |
|---|---|---|
curl -s -o /dev/null -w '%{http_code}\n' https://updates.oaistatic.com/codex/app/appcast | 400,返回内容里有 Field required,缺的是 installation_id、arch、app_version | 正常。更新服务在应答,只是你没带应用才有的参数,这不是本次故障 |
| 同上 | 520,响应头 server: cloudflare,正文 error code: 520 | 这次故障的样子:Cloudflare 后面的更新服务没有正常应答 |
curl -s -o /dev/null -w '%{http_code}\n' https://persistent.oaistatic.com/codex-app-prod/appcast.xml | 200 | 静态更新源正常,可以用来核对最新版本;但它正常不代表应用用的动态地址也正常 |
截至 2026 年 10 月 22 日,直接请求动态地址返回的是 400。注意,故障期间也有人不带参数请求得到 400,同一台 Mac 上应用带参数的请求却还是 520。所以 400 只能说明服务在线,不能证明你的应用一定能检查成功,最终以应用内「Check for Updates」的结果为准。也不要为了测试去拼一个带安装 ID 的完整请求,没有必要。
Codex 桌面版检查更新失败的其他疑问
修复后需要重启 Mac 吗?
OpenAI 没有说明。故障期间重启 Mac 并不能解决问题,修复后先彻底退出 ChatGPT 再打开、重新检查更新;这样还不行,再试重启,或者直接按上文第 3 步覆盖安装。
开 VPN 或者切到手机热点,能解决检查更新失败吗?
不能当作解决办法。故障期间有人开 VPN 后检查成功,同一个人换到另一个出口又失败;有人切手机热点成功,也有人照样报错;还有用户的情况正相反,关掉 VPN 才好。OpenAI 没有把切换网络列为修复方法,现在服务器端已经修好,更用不着。



