Codex Desktop repeatedly starts full MCP stacks for new sessions/subagents, causing severe slowdown and memory pressure
What version of the Codex App are you using (From “About Codex” dialog)?
26.415.21839 (1763)
What subscription do you have?
Paid OpenAI account (exact plan not verified from this session)
What platform is your computer?
Darwin 24.6.0 arm64 arm
What issue are you seeing?
Codex Desktop becomes progressively slower when web-related tasks are used. The send button can keep spinning, sending a message becomes delayed, web actions become much slower over time, and overall memory pressure increases enough that the whole machine feels laggy.
After investigating locally, this does not look like a simple screenshot/token-size issue or only a network/proxy issue. The stronger signal is that the desktop app keeps creating new backend sessions, and each new session or subagent starts a full MCP stack (chrome-devtools, playwright, computer-use) instead of reusing or cleanly disposing existing connections.
I also saw frontend/backend conversation state drift, including repeated Received turn/started for unknown conversation and Conversation state not found messages in the desktop logs.
What steps can reproduce the bug?
- Use Codex Desktop on macOS for a while with web/MCP tools enabled.
- Perform normal work that includes browser-related tasks, and keep using the app across multiple conversations.
- Let background subagent work happen as well; in my case hidden
memory_consolidationthreads were created automatically. - Observe that the same
app-serverprocess can stay alive while new sessions keep being initialized. - In logs, new sessions repeatedly run
session_init.mcp_manager_init(enabled_mcp_server_count=3), including subagent sessions (is_subagent=true), which means a full MCP stack is started again. - Over time, process count and RSS keep climbing, and the UI becomes sluggish.
Concrete evidence from this machine:
- Hidden threads in local state DB with
source={"subagent":"memory_consolidation"}were created at2026-04-17 16:56:50and2026-04-17 17:53:57. - Those timestamps aligned with fresh MCP batches starting.
- Frontend logs showed
thread/unsubscribeand then shortly afterthread/read/thread/resumefor the same conversation.
What is the expected behavior?
The desktop app should reuse existing MCP connections when possible, or reliably close previous per-session MCP stacks when they are no longer needed.
Background subagents such as memory consolidation should not start a full browser/MCP stack unless that work explicitly requires it.
Frontend and backend conversation/session state should stay consistent so the app does not keep receiving events for unknown conversations.
Additional information
Additional evidence from local investigation:
- Desktop app version:
26.415.21839 (1763) app-serverobserved on 2026-04-17:0.122.0-alpha.1- Similar symptoms were already present on 2026-04-16 with
0.119.0-alpha.28, so the 2026-04-17 release may have amplified the problem but does not appear to be the sole root cause. - Resource usage at the time of investigation:
- about 50
chrome-devtoolsrelated processes, about 1.28 GB RSS total - about 38
playwrightrelated processes, about 745 MB RSS total - about 14
computer-userelated processes, about 117 MB RSS total app-serveritself was only about 113 MB RSS- One hidden
memory_consolidationthread showedprompt_length=66651, with transport log entries around 147 KB to 345 KB. - Another hidden
memory_consolidationthread had transport log entries around 417 KB to 553 KB.
The key concern is not just that the app is slow, but that hidden/background activity appears to repeatedly initialize full MCP stacks and then leave the frontend and backend conversation state out of sync.
If useful, I can provide the relevant local log excerpts from the desktop log, ~/.codex/log/codex-tui.log, and the local state/log SQLite databases.
14 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
Same here. Started immediately after updating to the latest version mentioned in this issue.
Same machine, same setup, same workload. Yesterday it was fine. Today Codex is much more sluggish, with higher memory pressure / swap and heavier Codex Helper / Renderer usage on macOS.
Same, it was perfect before this last one.
Same here, but I just ran a simple prompt and huge background tasks consumed almost all of the limits. #18358
The rollouts after 11:59 were triggered after a simple task and consumed a lot of tokens
<img width="918" height="74" alt="Image" src="https://github.com/user-attachments/assets/546991a9-986c-4778-98e4-4219b60a3324" />
It seems related to some memory management by codex
Also, as @rafaself mentioned, token usage increased significantly.
I've never touched my daily limits until today.
I turned off the memories feature and this issue apparently has gone. So it's probably what was described in #18358
https://developers.openai.com/codex/memories
same here, suddenly started hitting daily limits and sending a simple "hello" message just keeps the wheel spinning for good 5-7 seconds before it sends the message
Memories was turned on in the config.toml, since I toke it out, this issue didn't happened again.
I dont have "memories" / "memory" in my config.toml
Still reproducible on macOS with a newer 26.415 build.
Environment
26.415.32059 (1789)User-facing symptom
The desktop app is slow to submit messages. The send button keeps spinning for a long time before the message appears / starts processing.
Local evidence from this machine
I checked recent desktop logs and current child processes.
Repeated slow
model/listandthread/resumein desktop logsExamples from Apr 17–18 local time:
2026-04-17 08:51:21—method=model/list durationMs=48722026-04-17 08:51:23—method=thread/resume durationMs=40072026-04-17 09:26:52—method=model/list durationMs=50072026-04-17 09:26:55—method=thread/resume durationMs=52032026-04-18 08:14:22—method=model/list durationMs=31472026-04-18 09:17:23—method=model/list durationMs=23202026-04-18 10:44:45—method=model/list durationMs=20142026-04-18 07:58:13—method=thread/resume durationMs=7382026-04-18 09:50:30—method=thread/resume durationMs=436These are from the desktop logs under
~/Library/Logs/com.openai.codex/2026/04/17and~/Library/Logs/com.openai.codex/2026/04/18.Current child-process state while the app is open
At the time of inspection:
59602codex app-serverPID:59655Codex Helper (Renderer)RSS: about322.8 MBSkyComputerUseClient mcpchildren under app-server:12processes, about97.8 MB RSStotalRepresentative examples:
59786—SkyComputerUseClient mcp59866—SkyComputerUseClient mcp60113—SkyComputerUseClient mcp60240—SkyComputerUseClient mcp64933—SkyComputerUseClient mcpTransport-related note
I searched the Apr 17–18 desktop logs for these strings:
Falling back from WebSockets to HTTPS transportstream disconnected before completionReconnecting...invalid_workspace_selectedThat search returned no hits on this machine, so the local evidence here points more strongly to desktop/app-server responsiveness and helper-process buildup.
Fixed
Local corroboration for the
computer-useside of this issue on macOS desktop.Observed under one long-lived
codex app-server(PID 46990):50direct childSkyComputerUseClient mcpprocesses661.4 MB0descendantsStale rule used:
SETIME > 60mSplit at the time of capture:
44,559.0 MB RSS6,102.5 MB RSSRepresentative
pssnapshot:Stale and fresh instances had the same
lsofshape:~/.codex/plugins/cache/openai-bundled/computer-use/1.0.7550/1/2~/Library/Group Containers/2DC432GLL2.com.openai.sky.CUAService/.../Analytics.dbnetsrccontrol handleAfter killing only the stale set:
SkyComputerUseClient mcp:50 -> 6661.4 MB -> 102.5 MB44stale clients exited onSIGTERMThis matches the session/subagent lifecycle failure described here:
computer-useis being instantiated as a per-session helper client, not as one shared singleton6current-session clients, which is consistent with multiple live session/subagent stacks existing at onceAt the same time, the same app-server also had
6freshduckduckgo-mcp-serverhelper roots. So the desktop symptom looks like “one helper batch per live session/subagent, old batches not reaped,” not a standalonecomputer-usebinary bug.This looks like the desktop manifestation of the broader teardown / manager-replacement problem discussed in #18881, but it belongs here because
computer-useis part of the repeated full MCP stack this issue calls out.This will get fixed thanks!