ChatGPT 登录成功后白屏:5 类原因 + 排查修复

登录跳到 chatgpt.com 后一片空白?按顺序排查:硬刷新、注销 service worker、清缓存、关扩展、查 JS 权限策略。

登录后白屏,意味着 auth 已经通过(URL 是 chatgpt.com/?...document.cookie 里有 session token),但 React app shell 没渲染出来。原因几乎总是这三类之一:某个 JS chunk 加载失败、service worker 在用旧缓存拦请求、或者扩展把应用要等的脚本 / WebSocket 拦了。

最快的修法(约 80% 的情况有效):先硬刷一次(Cmd/Ctrl + Shift + R)。还白?用无痕 / 隐私窗口(默认不带扩展)打开。无痕能正常显示,说明问题出在缓存或扩展上——直接跳到 Step 2。无痕也白屏,那多半是 service worker 或浏览器策略 / 网络问题——先 Step 2,再 Step 5。

想 10 秒内定位真正原因:按 F12 打开 Console 标签,重新加载,看第一条红色报错。那一条 error 字符串能直接对应到下表的某个修法。

你属于哪一类?

你看到的现象最可能的原因去哪一步
硬刷后能显示,约 30 秒后又白service worker 又缓存了旧 chunkStep 2
普通窗口白,无痕窗口正常扩展或缓存数据Step 2 + Step 4
无痕也白,但换个浏览器正常浏览器 profile / 策略Step 5
每个浏览器都白,状态页有 incidentOpenAI 服务端故障,不是你的问题Step 6
Console 报某一条具体红色 error在 Step 3 表里对号入座Step 3

常见原因

1. 浏览器缓存了和当前构建不匹配的 chunk

OpenAI 部署新版本时旧 HTML 引用的 chunk-abc123.js 已经被 CDN 替换成 chunk-def456.js。浏览器拿旧 HTML 去请求旧 chunk,返回 404 / 200 但 hash 对不上。

如何判断:DevTools → Console 看到 Loading chunk N failedChunkLoadErrorUnexpected token '<'(HTML 当 JS 解析失败)。

2. 广告 / 隐私扩展拦了应用脚本

uBlock Origin 或 AdGuard 的某些第三方滤镜会把 *.statsig.com(特性开关)、*.intercom.io*.cloudflareinsights.com 这类域名全拦了,而 ChatGPT 在 init 时会请求这些 endpoint。ChatGPT 的特性开关引导依赖 Statsig 那个请求,一旦它被硬拦,shell 就可能卡在白屏状态而不渲染。

如何判断:DevTools → Network → 看 ERR_BLOCKED_BY_CLIENT 的请求。或者直接看 Console 有没有 net::ERR_BLOCKED_BY_CLIENT

3. Service worker 卡在旧版本

PWA 注册了 service worker 缓存策略。前端大版本发布后,部分用户的 SW 是”半脑”状态——老 HTML 指向新 chunk URL,但 SW 拦截了请求返回缓存的 404 占位符。

如何判断:DevTools → Application → Service Workers,如果 status 不是 “activated and is running” 或 source 显示一个老日期,就是这个问题。

4. 浏览器策略 / 站点权限禁了 JS

公司管的 Chrome 通过 group policy 把 chatgpt.com 加到 “JavaScript blocked”;或者你之前手动 Settings → Site permissions → Block JavaScript on this site。

如何判断:访问 chatgpt.com,地址栏左边的小锁 → Site settings → JavaScript 是否是 Block。

5. CSP / CORS 错误(少见但很硬)

公司代理或扩展(比如某些 VPN)注入了自己的 CSP header,把 script-src 限制得比 OpenAI 原本严。结果应用本来允许的 inline script 全被拒。

如何判断:Console 报 Refused to execute inline script because it violates the following Content Security Policy directive

最短修复路径

从最便宜的开始:硬刷 → 注销 SW → 关扩展 → 改权限。

Step 1:硬刷新强制重新下载 chunk

Mac:     Cmd + Shift + R
Win:     Ctrl + Shift + R 或 Ctrl + F5

如果有效但 30 秒后又白——是 service worker 在重新缓存旧 chunk。继续 Step 2。

Step 2:注销 service worker

DevTools (F12) → Application → Service Workers
→ 找 chatgpt.com 那条
→ 点 Unregister
→ 顺手在 Storage 标签点 Clear site data → 勾掉 cookies(不然要重登)
→ 关掉所有 chatgpt.com 标签
→ 重开

或者一行命令在 Console 干掉所有:

navigator.serviceWorker.getRegistrations().then(rs => rs.forEach(r => r.unregister()));

Step 3:读 Console 的第一条 error

按 F12 打开 DevTools → Console → 重新加载页面,看最早一条红色 error。下表对应处理:

Console 错误原因修法
ChunkLoadError / Loading chunk N failedChunk 缓存对不上Step 1 + Step 2
net::ERR_BLOCKED_BY_CLIENT扩展拦了Step 4
Refused to execute inline scriptCSP 注入Step 5
Failed to register a ServiceWorkerSW 安装失败Step 2
CORS policy: No 'Access-Control-Allow-Origin'代理改了 header换网或 Step 5
Uncaught SyntaxError: Unexpected token '<'Chunk URL 返回了 HTML 404Step 1 + Step 2

Step 4:依次禁用扩展

打开 chrome://extensions → 把这几个先关掉再试:

  • uBlock Origin / AdGuard
  • Privacy Badger / Ghostery
  • NoScript / uMatrix
  • 任何 “Cookie AutoDelete” / “Forget Me Not”

或开个 Incognito + 禁所有扩展窗口(Chrome:Cmd/Ctrl + Shift + N),能用就说明肯定是扩展。再回正常窗口一个个开回去定位元凶。

Step 5:检查 JS 权限和 CSP

地址栏小锁 → Site settings
→ JavaScript: Allow
→ Cookies: Allow
→ Insecure content: Block(默认即可)

公司机器 group policy 锁死的话本地切换没用,要 IT 把 chatgpt.com 加到 JavaScriptAllowedForUrls 策略。

Step 6:先排除 OpenAI 服务端故障

如果每个浏览器都白、上面的步骤都没用,先确认问题到底在不在你这边。打开 status.openai.com,看 ChatGPT 这个组件。如果它显示 degraded 或有已发布的 incident,那白屏就是服务端的事——本地怎么折腾都没用。OpenAI 在 2026 年 4 月 20 日有过一次明显的平台故障,状态页上时不时也会发 incident,所以继续折腾前,花 10 秒查一下值得。

Chrome 白但 Safari 正常,就说明是浏览器侧的问题——回到出问题的那个 Chrome profile,把 Step 1 到 Step 5 再走一遍。

怎么确认真的修好了

满足下面全部条件,才算真修好(而不是碰巧好了一下):

  • 加载后一两秒内对话侧栏和输入框都正常渲染出来。
  • 硬刷新和新开一个标签都能正常显示——不只是你刚清过的那一个。
  • DevTools → Console 重新加载后没有红色的 ChunkLoadErrorERR_BLOCKED_BY_CLIENT 或 CSP 报错。
  • 撑过约 60 秒,说明 service worker 是干净地重新注册了,而不是又把旧 chunk 端上来。

如果显示一次、下次跳转又白,说明 service worker 其实没注销掉——先关掉所有 chatgpt.com 标签,再把 Step 2 重做一遍。

常见问题

为什么 ChatGPT 在无痕窗口正常,普通窗口却白屏? 无痕窗口启动时没有 service worker、缓存是空的、默认也不带扩展。所以「普通窗口白 / 无痕正常」这种分裂,恰好说明问题就在这三者之一:旧缓存 chunk、卡死的 service worker、或者拦请求的扩展。先做 Step 2(注销 SW + 清站点数据、保留 cookies),再做 Step 4(扩展)。

清站点数据会把我从 ChatGPT 登出吗? 只有清掉 cookies 才会。在 DevTools → Application → Clear site data 里,稳妥的做法是不勾 cookies,这样 session 还在。如果全清了,你会回到登录页,没什么大不了,重新登一次即可。

在 Console 里跑 navigator.serviceWorker.getRegistrations() 安全吗? 安全。这一行只注销当前源(chatgpt.com)的 service worker,不碰 cookies、密码或其他网站。跑完后关掉所有 chatgpt.com 标签再重开,让一个干净的 worker 重新注册。

整页在每个浏览器里都白——是我的问题还是 OpenAI 的? 先查 status.openai.com。如果 ChatGPT 组件是绿的、只有你白屏,那就是本地问题(缓存 / SW / 扩展 / 策略)。如果它是红的或有 incident,等它恢复就行,本地修法救不了服务端故障。

全清了,公司发的电脑上还是不渲染。 公司的 group policy 可能禁了 JavaScript,或者注入了比 OpenAI 更严的 CSP,本地任何开关都覆盖不了。在 Step 5 里找 Refused to execute inline script 或 JavaScript 被禁的状态,然后让 IT 把 chatgpt.com 加到 JavaScriptAllowedForUrls 策略,并在代理上放行 OpenAI 的域名。

预防建议

  • 浏览器保持最新,老 Chrome / Safari 缺现代 ES 特性会导致 chunk 直接 parse 失败。
  • chatgpt.com 给广告拦截扩展开例外(uBlock:点扩展图标 → 大按钮”暂停”或加 trusted 域)。
  • 别同时装两个广告拦截扩展,规则会打架。
  • OpenAI 大更新(一般在工作日早晨 PT)后第一次访问,主动硬刷一次再用。
  • 给 chatgpt.com 做 bookmark,从 bookmark 进比从历史进更不易踩 stale URL。

相关阅读

外部参考:

标签: #ChatGPT #ChatGPT 账号 #排查 #排查 #白屏