High CPU usage and excessive idle wake-ups on empty chat page (V8 RequestInterrupt loop)
What version of the Codex App are you using (From “About Codex” dialog)?
26.325.31654 (1272)
What subscription do you have?
Business
What platform is your computer?
Darwin 24.6.0 arm64 arm
What issue are you seeing?
Description
When opening the chat page in Codex (macOS), the application consumes significant CPU and causes excessive idle wake-ups, even when the conversation is completely empty.
This results in noticeable battery drain and the laptop heating up.
The issue disappears immediately when switching away from the chat page (e.g., to Settings), which suggests the problem is isolated to the chat UI.
What steps can reproduce the bug?
- Open Codex
- Navigate to a new empty chat page
- Do not input anything (no messages at all)
- Observe CPU usage and idle wake-ups
- Switch to another page (e.g., Settings)
What is the expected behavior?
- An empty chat page should be essentially idle
- CPU usage and wake-ups should remain near zero when no activity is happening
Additional information
Investigation / Technical Findings
Using sample on the main process shows a consistent call stack dominated by:
v8::Isolate::RequestInterrupt(very high frequency)- Event loop (
CFRunLoopRun,mach_msg)
The call graph indicates that nearly all samples hit the same execution path, suggesting a tight loop or high-frequency interrupt mechanism.
Example pattern:
v8::Isolate::RequestInterrupt
→ v8::Message::GetLineNumber
→ node::PrincipalRealm::http2session_on_origin_function
→ CFRunLoopRun
Key observations:
- The loop persists even when the chat is empty
- No GPU usage spike (not a rendering issue)
- No abnormal
pmsetwake reasons or sleep prevention assertions - Appears to be a user-space event loop / interrupt storm
---
Hypothesis
The chat page likely contains a high-frequency timer, event loop, or interrupt mechanism that continues running even in an idle/empty state.
Possible causes:
- Unbounded
setInterval/requestAnimationFrame - Streaming or polling logic not gated by activity
- Excessive V8 interrupt requests (likely the main cause)
---
Impact
- Significant battery drain
- Laptop heating
- Poor idle efficiency
- Makes it impractical to keep Codex open on the chat page
---
Workarounds
- Switching away from the chat page immediately resolves the issue
- Using CLI instead of the UI avoids the problem entirely
---
Additional Notes
This issue reproduces consistently on an empty chat page, so it does not depend on:
- conversation length
- message content
- streaming responses
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗