[macOS] Codex spawns ~100 zombie child processes per 5 seconds at startup, exhausting process limit (kern.maxprocperuid=2666)

Open 💬 1 comment Opened Jun 15, 2026 by leolegend91

Environment

  • Codex version: 26.609.41114
  • macOS: 14.5 (Sonoma)
  • Hardware: Apple Silicon
  • Reproduction: Immediate on app launch, no user interaction required

Description

Immediately after opening Codex, the main process (Codex.app/Contents/MacOS/Codex) <br>spawns < />100 <defunct> zombie child processes every 5 seconds (< />20/sec). <br>These are never reaped, accumulating until macOS's per-user process limit <br>(kern.maxprocperuid = 2666) is exhausted.

When the limit is hit:

  • System load spikes to 500–900
  • macOS cannot fork any new processes (all apps affected)
  • Codex itself disconnects and attempts to reconnect in a loop
  • Other apps (Xcode, Chrome, terminal) become unresponsive

Reproduction Steps

  1. Ensure system is clean (0 zombie processes)
  2. Open Codex.app
  3. Do nothing — observe with watch -n1 "ps aux | awk '\$8==\"Z\"' | wc -l"

Result: zombie count grows at ~100/5s, hits ~2600 within ~2 minutes

Diagnostic Data

Zombie parent is always the main Codex PID:

ps -eo pid,ppid,stat,comm | awk '$3< />/Z/{print $2}' | sort | uniq -c <br>→ 1329

Rate measured over 40s:

10:33:06 zombies=39 <br>10:33:12 zombies=146 (+107) <br>10:33:18 zombies=242 (+96) <br>10:33:24 zombies=333 (+91) <br>10:33:42 zombies=596 (+90/5s)

What Was Ruled Out

All of the following have no effect on the zombie accumulation rate:

  • [features] goals = false
  • [plugins."computer-use@openai-bundled"] enabled = false
  • [plugins."browser@openai-bundled"] enabled = false
  • Removing notify callback from config
  • Disabling/deleting SkyComputerUseService and SkyComputerUseClient
  • Removing node_repl MCP server
  • Removing trusted project entries
  • Fresh reinstall (same version)

Related Issues

  • openai/codex#26293 (SkyComputerUseClient orphans — different pattern, slow accumulation over days)
  • openai/codex#25243 (relaunch loop exhausting syspolicyd — similar symptom, older version)

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗