Bug: Progressive memory leak in ChatGPT web client causes escalating freezes / tab crashes
Environment: Chrome desktop (also reproduced in Incognito with all extensions disabled). Not reproducible in the ChatGPT mobile app.
Summary
A ChatGPT tab becomes progressively slower and eventually freezes/locks up the longer it stays open and in use — regardless of which conversation is active. Opening a “New Chat” does not reset the underlying tab state, since ChatGPT is a single-page app; the leak persists and compounds across conversations within the same tab/session.
Symptoms observed
- Chrome Task Manager shows CPU usage climbing over time in a single ChatGPT tab, eventually exceeding 100–140% sustained, while every other open tab stays near 0%.
- Memory footprint for the tab grows into the 500MB–1.3GB+ range (vs. ~150–250MB for comparable tabs).
- GPU memory for the tab climbs into the tens of MB while unrelated tabs stay at 0K.
- DOM node count creeps upward over the session (observed ~6,371 → ~7,749 nodes over ~2 minutes) and does not return to baseline.
- Reproducible in a fresh Incognito window with zero extensions enabled, ruling out extension interference.
- Confirmed via
chrome://process-internalsand Chrome DevTools Performance recordings that the same browser process/tab persists across “New Chat” clicks (Process ID unchanged), carrying over CPU/memory state from prior conversations.
DevTools Performance trace findings
A ~2-minute Performance recording on an active session showed a series of long main-thread-blocking tasks, all attributable to V8 garbage collection (incremental marking, concurrent marking, scavenging, weak-reference cleanup):
| Time into recording | Main-thread freeze duration |
|---|---|
| 14.6s | 4.2s |
| 22.6s | 4.5s |
| 37.4s | 10.0s |
| 47.4s | 13.5s |
| 60.9s | 19.2s |
| 80.1s | 31.1s |
Freeze duration roughly doubles each cycle within a two-minute window — consistent with a genuine, actively worsening memory leak rather than normal GC overhead. JS heap usage oscillates between ~90MB and ~700MB throughout, with the post-GC floor trending upward rather than returning to baseline.
All heavy JS execution during these freezes traces back to an anonymous function within ChatGPT’s own client bundle (https://chatgpt.com/cdn/assets/2340486e-*.js), not to any browser extension.
Chrome’s own Web Vitals panel confirms user-facing impact: Interaction to Next Paint (INP) of 2,640ms (“poor”) recorded on a basic click/typing interaction in an otherwise fresh tab.
Reproduction steps
- Open chatgpt.com in a fresh Chrome tab (Incognito, no extensions, confirmed reproducible).
- Use the client normally for several minutes — send messages, switch between conversations, especially longer/image-heavy ones.
- Monitor via Chrome Task Manager (Shift+Esc): CPU and memory for the tab climb progressively.
- Record a DevTools Performance trace during continued use: observe escalating GC-driven main-thread freezes.
Expected behavior
Sustained use of ChatGPT’s web client, including switching between conversations, should not cause unbounded, escalating memory growth or multi-second UI freezes.
Suspected cause
Likely a DOM/React re-render or virtualization issue where old message content, images, or listeners aren’t being fully unmounted/dereferenced between renders, causing objects to remain reachable and preventing garbage collection from reclaiming them.