DeviceCheck 报错会在你的密码被校验之前就拦住 ChatGPT 登录,而官方那条关于日期和时间的建议几乎修不好任何一例。 这个错的意思是,你的设备没能拿出一张证明自己是正经硬件的认证令牌。那是你的设备和苹果或谷歌之间的对话——OpenAI 只是那个被通知「不行」的一方。
所以同一个账号在网页上登录一点事没有。本文讲每个变体到底是什么意思,以及那些真能解决问题的修法,按实际生效频率排序。
错误家族: DeviceCheckError / "DeviceCheck registration failed"
其他形态: Token generation failed · Preauth PlayIntegrity verification failed
DeviceCheck token generation is unavailable(macOS)
附带的码: 403、500、503 —— 这是传输层状态码,不是三种不同的根因
影响范围: 只挡原生 app 登录。浏览器登录不受影响。
根因: 设备认证,不是你的 OpenAI 账号
来源为 OpenAI 自己的帮助文档、OpenAI Developer Community 的帖子,以及 openai/codex issue #33463,读取于 2026 年 9 月 6 日。
DeviceCheck 到底是什么
苹果的 DeviceCheck 和谷歌的 Play Integrity,让 app 能向操作系统厂商问一句「这是不是一台没被改过的真机?」 OpenAI 用它来挡住模拟器和改机上的批量注册。
失败时的流程是这样:
你点登录。app 向系统要一张认证令牌。
系统尝试生成它,过程中要和苹果或谷歌通信。
这条链上某一环断了。
app 拿不到令牌,于是根本没把你的账号密码发出去,你看到的就是 DeviceCheck 报错。
你的账号从头到尾没被牵涉进来。 这是这件事上最有用的一条认知,因为它直接排除了改密码、账号申诉、开账单类工单——这些跟本问题一点关系都没有。
搜索结果里的 403、500 和 503
大家会去搜 devicecheck registration failed (403)、(500)、(503),因为这些数字就写在报错文本里。它们是认证调用返回的 HTTP 状态码,不是三个各有各修法的独立 bug:
403 —— 请求被拒。通常是完整性问题:设备被改过,或者边缘/WAF 层拒了这个客户端。有几个 iPhone 的报告最后查到是登录过程中的 Cloudflare 拦截。
500 / 503 —— 认证服务出错或不可用。多半是服务端的临时故障。
看到 503 就先等一会儿再试,别急着改任何配置。反复看到 403,那更可能是下面这些设备侧的原因。
修法 1:清浏览器缓存(报告成功率最高)
ChatGPT app 是把登录交给系统浏览器走的,所以浏览器缓存出问题会拖垮 app,而网页版照样能用。
这条反直觉到很多人直接跳过,但它恰恰是解决报告最多的那个修法。
iPhone: Safari 和 Chrome 两个都要清,不是只清默认那个。
设置 → Safari → 清除历史记录与网站数据
Chrome → ⋯ → 删除浏览数据
Android: 把默认浏览器换成 Chrome 再试。有多个报告是从 Brave 或第三方浏览器切走之后立刻好了。
社区里有人折腾了好几个月都没成,清完 Safari 和 Chrome 两边缓存后的原话是 “it magically started working perfectly.”(它就神奇地完全正常了。)机理在于登录是在后台系统浏览器跑的,所以浏览器的状态就是 app 的状态。
修法 2:装掉待安装的系统更新,然后重启
一个装不上的安全更新,是有据可查的原因之一。
有一份 iPhone 报告,作者试遍了换 Wi-Fi、开热点、重装、无痕模式、退出重登——全都没用。真正的原因是一个因存储空间不足而被卡住的 iOS 更新。腾出空间、装上、让手机重启之后,登录立刻就通了。
去「设置 → 通用 → 软件更新」,把所有待装的东西(包括快速安全响应)装掉,重启后再试。过期的安全组件会导致边缘层在登录时拒掉这台设备。
修法 3:设备完整性(以及为什么反复重试没用)
如果你的设备 root 或越狱过,DeviceCheck 失败就是这套机制在按设计工作。 OpenAI 的帮助文档直接点名了这一条:“Modifications like rooting or jailbreaking may cause this error.”(root 或越狱这类改动可能引发此错误。)
真正浪费时间的细节写在同一篇文档里:完整性校验结果最长可缓存 24 小时。 所以你把根本问题修好后立刻重试,测的是一个被缓存下来的失败结果。重试前先清 app 数据。
在装了 Magisk 的 root 安卓上,社区的做法是上 Play Integrity Fix 模块再重启。那是在绕过一个本就故意判失败的校验,请照此掂量。
修法 4:清 app 和 Play 服务的数据(Android)
按破坏性从小到大排:
设置 → 应用 → ChatGPT → 存储 → 清除缓存
同一页 → 清除数据(会把你登出)
设置 → 应用 → Play Store → 清除数据
设置 → 应用 → Google Play 服务 → 清除缓存
然后重启再试。四步一口气全做完也能好,但你就不知道原因是什么了;按顺序来只多花几分钟,能定位到底是哪一环。
修法 5:macOS 的 “DeviceCheck Token Generation Is Unavailable”
这个变体的根因和上面每一条都不一样,上面那些修法一个都解决不了它。
macOS 上的症状很有辨识度:鉴权成功,app 启动并恢复了你的会话,然后对话功能挂掉。从 openai/codex issue #33463 里的诊断信息看,系统日志是这样的:
failed to do a bootstrap look-up: xpc_error=[3: No such process]
Could not find service "com.apple.devicecheckd" in domain for system
preauth_cookie_failed=APIClient.DeviceCheckError: Token generation failed
MobileActivation.ErrorDomain Code=-4 "UCRT is unavailable."
devicecheckd: Failed to fetch client certificate.
一位报告者确认过没有 HTTP 401、没有 403、也没有 TLS 失败——失败发生在鉴权之后的初始化阶段。Secure Enclave 生成密钥和认证这几步都是成功的;挂掉的是 MobileActivation 提供 DeviceCheck 所需的客户端证书这一环。
那个帖子里真正解决问题的操作:
单纯重启,对两位还在用旧版 app 的报告者有效。
更新 macOS 后重启。 有一例很顽固,熬过了 26.5 → 26.6 和多次 app 更新,最后在 26.6.1 加一次重启后恢复。日志随即翻转为
Performing UCRT OOB. Successfully performed UCRT OOB.,devicecheckd立刻拿到了新的认证证书。同一位报告者还改过 Apple 账户密码,自己也说不清到底是哪一步起的作用。
没用的: 新建一个 macOS 用户账户(故障跟着走),以及开关「查找」。
如果你撞上的是这一种,先更新 macOS 并重启。这是苹果侧的证书问题,重装 ChatGPT 不是那个开关。
坏着的这段时间怎么办
走浏览器登录。 网页版不需要设备认证,这正是原生 app 挂了它却照常的原因。这件事上所有社区帖子都确认网页端不受影响。
如果你当初是用邮箱加密码注册的,就别在 app 里去点 Google、Microsoft 或 Apple 登录——混用登录方式会引发另一套独立的故障。用你注册时用的那一种。
如果你要的其实是 API 而不是 to C 的 app,那 DeviceCheck 压根不在这条路径上。API key 用 bearer token 鉴权,完全不碰设备认证,所以这一类错误不可能出现:
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-5.6-sol",
"messages": [{"role": "user", "content": "..."}]
}'
那是另一个产品,不是这个问题的绕行方案——只有当你真正需要的是编程访问时,这条才值得知道。
哪些做法修不好
下面这些是从各个帖子里收集的、大家反复试过但没成功的操作,你可以直接跳过:
重装 app。 试的人很多,成的很少;在 macOS 上它更不可能有效,因为问题出在苹果的证书链里。
改密码、账号申诉。 你的凭据根本没被发出去,故障发生在它们之前。
Wi-Fi 切蜂窝网。 如果某个网络真的在拦认证端点,偶尔有用,但优先级很靠后。
改完立刻重试。 完整性判定最长缓存 24 小时。先清 app 数据,否则你读到的还是那个旧结果。
补充一条:防火墙也能造成这个问题。有位 macOS 用户是在 Little Snitch 里放行了 ChatGPT 的四条特定连接后解决的。如果你装了逐应用防火墙,那这条要排在本页所有内容之前先查。
相关报错
如果你的问题是鉴权而不是设备认证,下面这几个是原因和修法都不同的故障:
Codex CLI 401 Unauthorized —— 真正的凭据被拒,和 DeviceCheck 不是一回事。
codex: command not found和 EACCES —— 安装路径问题,不是登录问题。Windows 上 Codex “failed to start app-server” —— Windows 桌面端版本的「app 起不来」,原因清单完全另一套。
来源
官方原因和 24 小时完整性缓存那条来自 OpenAI 的帮助文档。macOS 的 devicecheckd / UCRT 诊断信息和恢复经过引自 openai/codex issue #33463。其余修法来自 OpenAI Developer Community 中报告者确认有效的帖子;它们是社区报告而非厂商记录的方案,且这些都不是我们自己复现的——DeviceCheck 故障取决于每台设备各自的状态,无法按需稳定复现。
参考来源
- ofox 文档:模型目录 — https://docs.ofox.io/zh/develop/models