`[Bug] Computer Use causes a replayd XPC reconnect loop and ~90% CPU while idle on macOS`

Open 💬 3 comments Opened Aug 7, 2026 by echokz

Recommended issue title

[Bug] Computer Use causes a replayd XPC reconnect loop and ~90% CPU while idle on macOS

Bug report body

Summary

On macOS, the ChatGPT desktop app's Computer Use service entered a tight XPC connect/cancel loop with Apple's replayd process even though Computer Use was not actively being used.

The loop caused sustained high CPU usage and made the MacBook Air noticeably hot:

  • replayd: approximately 91.2% CPU
  • SkyComputerUseService: approximately 19.8% CPU

The issue recurred after the processes were stopped manually. Disabling Computer Use, removing its turn-ended notification hook, and removing the Computer Use runtime stopped the loop immediately. After mitigation, replayd remained at 0.0% CPU across repeated samples and SkyComputerUseService did not restart.

Environment

  • ChatGPT desktop app: 26.730.61639 (build 6234)
  • Bundled Codex CLI: 0.147.0-alpha.1.2
  • Computer Use service: 26.803.1000621 (build 1000621)
  • Computer Use bundle ID: com.openai.sky.CUAService
  • Model in use: gpt-5.6-sol
  • macOS: 14.6 (build 23G80)
  • Device: MacBook Air, Apple M3, 16 GB RAM (Mac15,12, arm64)

Observed state before mitigation

Computer Use was not being used in the active Codex task. The MCP entry was disabled, and the plugin manager reported Computer Use as not installed:

computer-use@openai-bundled    not installed

However, the Computer Use runtime still existed under $CODEX_HOME/computer-use, SkyComputerUseService was running, and the global Codex config contained an active turn-ended notification hook:

notify = ["<HOME>/.codex/computer-use/Codex Computer Use.app/Contents/SharedSupport/SkyComputerUseClient.app/Contents/MacOS/SkyComputerUseClient", "turn-ended"]

[mcp_servers.computer-use]
command = "./Codex Computer Use.app/Contents/SharedSupport/SkyComputerUseClient.app/Contents/MacOS/SkyComputerUseClient"
args = ["mcp"]
cwd = "."
enabled = false

During diagnosis, the notify entry was commented out, but an active copy was automatically added back later.

Steps that led to the issue

These are the observed steps/trigger sequence. I have not reinstalled Computer Use after mitigation because doing so may recreate the high-CPU loop.

  1. Computer Use had previously been installed or enabled in the ChatGPT desktop app on macOS.
  2. Continue using Codex normally without invoking @Computer or starting a Computer Use task.
  3. Complete Codex turns while the turn-ended notification hook is present.
  4. SkyComputerUseService starts or restarts automatically.
  5. In Activity Monitor or ps, observe sustained CPU usage from replayd and SkyComputerUseService.
  6. Stop the processes manually; the Computer Use service is started again later and the issue returns.

Expected behavior

  • When Computer Use is not active, it should not continuously connect to ReplayKit or consume significant CPU.
  • Disabling or uninstalling Computer Use should remove/disable its notification hooks and prevent SkyComputerUseService from starting.
  • Connection failures should use bounded retries with backoff instead of a busy loop.

Actual behavior

  • SkyComputerUseService and the ChatGPT process repeatedly opened and cancelled connections to replayd.
  • In a single one-second log window, the following events were counted:
ChatGPT connections accepted:             2,067
SkyComputerUseService connections accepted: 2,067
XPC connection cancellations:             4,134
  • macOS eventually quarantined logging because of the event volume:
QUARANTINED DUE TO HIGH LOGGING VOLUME

Representative system log excerpt

2026-08-07 14:14:37.441 replayd[63348] ... accepted client connection PID: 46182
2026-08-07 14:14:37.441 replayd[63348] ... invalidated because the current process cancelled the connection by calling xpc_connection_cancel()
2026-08-07 14:14:37.441 replayd[63348] ... activating connection ... name=com.apple.replayd.peer[46261]
2026-08-07 14:14:37.441 replayd[63348] ... accepted client connection PID: 46261
2026-08-07 14:14:37.441 replayd[63348] ... invalidated because the current process cancelled the connection by calling xpc_connection_cancel()
2026-08-07 14:14:37.444 replayd[63348] ... QUARANTINED DUE TO HIGH LOGGING VOLUME

Process mapping at the time:

View original on GitHub ↗

3 Comments

echokz · 21 days ago

sessionId:019f7e23-e0b0-7472-aee4-e6b8d96bd497

tsuvic · 21 days ago

A contrast data point from a similar-but-unaffected setup:

  • macOS 26.5.2 arm64, ChatGPT desktop 26.803.41515 (bundled codex 0.147.0-alpha.6.5)
  • Computer Use runtime installed at ~/.codex/computer-use — bundle version 26.804.1000633 (one newer than your 26.803.1000621)
  • the same active turn-ended notification hook: notify = ["…/SkyComputerUseClient", "turn-ended"]
  • SkyComputerUseService running (as a child of the ChatGPT main process)

No loop here: across repeated samples while the desktop app is running and after completed turns, replayd and SkyComputerUseService both sit at 0.0% CPU. So hook + runtime alone don't appear sufficient — it may depend on the macOS version (14.6 there vs 26.5.2 here) or the service build.

If it recurs, log stream --predicate 'process == "replayd"' and --predicate 'process == "SkyComputerUseService"' during the loop should show which side initiates each connect/cancel cycle.

h2obuffalo · 13 days ago

I have the same issue and also running 14.6.1 on Macbook Pro M1 . It's been happening for a few months, reported it a few times within the app