Codex Desktop 26.609.30741 crashes Dock external extra via CodexDockTilePlugin setDockTile recursion on macOS
What version of the Codex App are you using (From “About Codex” dialog)?
26.609.30741 Bundle version: 3808 Bundled CLI: codex-cli 0.140.0-alpha.2
What subscription do you have?
ChatGPT Pro (Max)
What platform is your computer?
macOS 26.5.1 (25F80), Apple Silicon arm64
What issue are you seeing?
Codex Desktop repeatedly crashes/restarts on macOS.
macOS DiagnosticReports show repeated crashes in:
com.apple.dock.external.extra.arm64
The crash is caused while loading Codex's Dock tile plugin:
/Applications/Codex.app/Contents/PlugIns/CodexDockTilePlugin.plugin
Crash details:
Exception: Thread stack size exceeded due to excessive recursion
Faulting stack repeatedly shows:
-[CodexDockTilePlugin_com_openai_codex setDockTile:]
Observed locally:
- /Applications/Codex.app is accepted by Gatekeeper as Notarized Developer ID from OpenAI OpCo, LLC.
- spctl sometimes returned “Too many open files” while syspolicyd had many open handles to:
/Applications/Codex.app/Contents/MacOS/Codex
- A fresh official Codex.dmg from chatgpt.com/download showed the same CodexDockTilePlugin-related verification behavior.
Relevant crash reports:
~/Library/Logs/DiagnosticReports/com.apple.dock.external.extra.arm64-2026-06-11-190019.ips
~/Library/Logs/DiagnosticReports/com.apple.dock.external.extra.arm64-2026-06-11-185935.ips
Expected:
Codex Desktop should not crash the Dock external extra process or trigger repeated syspolicyd file-handle buildup.
What steps can reproduce the bug?
- Install/open Codex Desktop on macOS.
- Quit and restart Codex Desktop.
- After startup/restart, macOS creates repeated crash reports for:
com.apple.dock.external.extra.arm64
- The crash report points to Codex's Dock tile plugin:
/Applications/Codex.app/Contents/PlugIns/CodexDockTilePlugin.plugin
- The faulting stack repeatedly shows:
-[CodexDockTilePlugin_com_openai_codex setDockTile:]
No code snippet, session id, token limit, or context window usage applies. This is a native macOS app/Dock plugin crash.
What is the expected behavior?
Codex Desktop should start and restart without crashing the macOS Dock external extra process.
The Codex Dock tile plugin should not recurse indefinitely in setDockTile, and Codex should not contribute to syspolicyd/Gatekeeper file-handle buildup.
Additional information
Crash details observed locally:
Exception:
Thread stack size exceeded due to excessive recursion
Process in crash report:
com.apple.dock.external.extra.arm64
Plugin involved:
CodexDockTilePlugin.plugin
Installed Codex app:
Codex Desktop 26.609.30741
Bundle version 3808
Bundled CLI: codex-cli 0.140.0-alpha.2
macOS Gatekeeper accepts /Applications/Codex.app as:
Notarized Developer ID
Developer ID Application: OpenAI OpCo, LLC (2DC432GLL2)
Around the same time, spctl sometimes returned "Too many open files", and syspolicyd had many open handles to:
/Applications/Codex.app/Contents/MacOS/Codex
17 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
Additional local diagnostics from a later recurrence on the same machine.
Environment:
26.609.30741/ build3808, bundle idcom.openai.codex15.7.4 (24G517)Mac16,6Observed on 2026-06-12, local timezone CEST:
~/Library/Logs/DiagnosticReportsnow contains 55com.apple.dock.external.extra.arm64-2026-06-12-*.ipsreports from12:18through15:08.EXC_BAD_ACCESS/SIGSEGV./Applications/Codex.app/Contents/PlugIns/CodexDockTilePlugin.plugin/Contents/MacOS/CodexDockTilePlugincom.openai.codex.dock-tile-plugin, version1.0 (1)objc_storeStrong-[CodexDockTilePlugin_com_openai_codex setDockTile:]Representative latest report:
2026-06-12 15:08:48 +0200com.apple.dock.external.extra.arm64, pid94191EXC_BAD_ACCESS / SIGSEGV, subtypeKERN_PROTECTION_FAILURESIGNAL, code11, indicatorSegmentation fault: 11objc_storeStrongfollowed by repeated-[CodexDockTilePlugin_com_openai_codex setDockTile:]Possible related system impact, not claiming root cause:
13:01,13:03,14:26, and14:45.lastshows a reboot at14:41; after that reboot, another WindowServer watchdog occurred at14:45.unresponsive work processor(s): WindowServer main threadwith40 seconds since last successful checkin..ips/.spinfiles show the main thread in TCC preflight queues, includingcom.apple.tcc.preflight.kTCCServiceListenEventand oncecom.apple.tcc.preflight.kTCCServiceScreenCapture.Launchd throttled processesandsyspolicydreaching dispatch thread soft limit.Happy to provide the full
.ips/ WindowServer.spindiagnostics through a non-public channel if useful; they contain local machine details, so I am not attaching them here.Post-reboot follow-up from the same machine:
2026-06-12 16:46:43 +0200on macOS15.7.4 (24G517).2026-06-12 16:48:44 +0200.loginwindowreacting toWindowServerexit, not idle logout:Window Server exited, closing down the session immediatelydirectLogoutReason:WindowServerExited/Library/Logs/DiagnosticReports/WindowServer-2026-06-12-164844.ipsbug_type: 40963AA04B4-9B48-44C8-8B05-6CB8F580EA8AWATCHDOG, indicatormonitoring timed out for serviceunresponsive work processor(s): WindowServer main threadand40 seconds since last successful checkin/Library/Logs/DiagnosticReports/WindowServer_2026-06-12-164856_Tintagel.userspace_watchdog_timeout.spinWindowServermain thread is on dispatch queuecom.apple.tcc.preflight.kTCCServiceScreenCapturecom.apple.tcc.preflight.kTCCServiceListenEventProcesses reached dispatch thread soft limit (80): syspolicyd [496]replayd,tccd,syspolicyd, Codex processes, andbare-modifier-monitorcom.openai.codex.betaScreenCapture/ListenEvent preflights around16:47:45-16:47:46com.openai.codex.helperunder Codex Beta checked byWindowServerat16:47:46.531bare-modifier-monitorunder Codex Beta checked byWindowServerat16:47:47.228and16:47:53.299Local versions at the time:
/Applications/Codex.app:26.609.30741 (3808), bundle idcom.openai.codex, still hasNSDockTilePlugIn = CodexDockTilePlugin.plugin./Applications/Codex (Beta).app:26.527.60818 (3436), bundle idcom.openai.codex.beta, noNSDockTilePlugInin its Info.plist.Current working hypothesis: the remaining lockouts are on the TCC ScreenCapture/ListenEvent path, likely involving Codex Beta/Computer Use/bare-modifier-monitor and/or interaction with other screen-capture apps. This appears separate from the earlier non-Beta Dock tile plug-in crash.
Confirming this is NOT fixed in 26.609.41114 — and it also reproduces on macOS 27.0 beta.
Adding two data points not yet in this thread:
1. The bug persists in 26.609.41114. My machine auto-updated twice (03:09 → 26.609.30741, then 04:43 → 26.609.41114 on 2026-06-13). Both versions produce the identical crash loop in
com.apple.dock.external.extra.arm64, roughly every 5–10 minutes while the plugin is present.2. Also reproduces on macOS 27.0 beta (26A5353q), Mac mini Mac16,10 (arm64) — so this isn't specific to macOS 26.x.
Crash signature from DiagnosticReports (26.609.41114, 2026-06-13):
setDockTile:re-enters itself at offset +224 — looks like the setter calls itself (or triggers the same code path) instead of writing the ivar, recursing until stack overflow.Workaround (until a fixed build ships): move
Codex.app/Contents/PlugIns/CodexDockTilePlugin.pluginout of the bundle andkillall Dock. Codex itself works fine without it; only the Dock-tile badge is lost. Note that every Sparkle auto-update restores the plugin, so the workaround has to be re-applied after each update — which is how I can confirm 41114 is still affected.I can confirm a very similar issue on macOS 26.5.1 with Codex Desktop 26.609.30741.
Environment
Observed behavior
While Codex Desktop is open and active, macOS repeatedly drives high CPU in:
/usr/libexec/syspolicyd/usr/libexec/trustdThis causes sustained heat/fan noise. Low Power Mode makes the machine quieter, but does not appear to remove the underlying loop.
Live process evidence
During a read-only sudo diagnostic run:
Not fixed
Still reproduces on a newer build than the one originally reported here — so this is not fixed yet.
Environment
Symptoms (identical stack to the original report)
com.apple.dock.external.extra.arm64(the XPC helper Dock uses to host third-party Dock tile plugins)EXC_BAD_ACCESS (SIGSEGV),KERN_PROTECTION_FAILURE— "Could not determine thread index for stack guard region" → classic stack overflowCodexDockTilePlugincalling itself recursively (sameimageOffsetrepeated 6–7 frames deep) before blowing the stack, exactly matching-[CodexDockTilePlugin_com_openai_codex setDockTile:]Frequency
So the recursion in the Dock tile plugin is still present in 26.609.41114. Happy to attach a full
.ipsif useful.Adding another data point: I am seeing the same
CodexDockTilePlugin/setDockTile:recursion crash on a different app, OS, and hardware combination.Codex app:
26.609.411143888/Applications/Codex.app/Applications/Codex.app/Contents/PlugIns/CodexDockTilePlugin.plugincom.openai.codex.dock-tile-pluginCodexDockTilePlugin_com_openai_codexSystem:
15.7.7 (24G720)MacBookPro15,1x86_64Crash report:
2026-06-14 17:46:29.7419 +0800com.apple.dock.external.extra.x86_64EXC_BAD_ACCESS (SIGSEGV)KERN_PROTECTION_FAILURENamespace SIGNAL, Code 11 Segmentation fault: 110, dispatch queuecom.apple.main-threadSTACK GUARDregion, which is consistent with stack exhaustionLocal inspection of the installed plugin also shows an Objective-C property named
dockTilewith backing ivar_dockTile, alongside the lifecycle methodsetDockTile:. That lines up with the apparent recursive setter/lifecycle-method collision described here.I am not attaching the full crash report because it includes unrelated machine inventory, but I can provide a redacted
.ipsexcerpt if useful. The key signature matches this issue while extending it to Intelx86_64, macOS15.7.7, and Codex app26.609.41114.Adding another data point to the existing main tracking issue. I am not opening a new issue because this is a duplicate of this thread.
What version of the Codex App are you using (From “About Codex” dialog)?
Codex app:
26.609.41114Bundle/build:
3888Bundled CLI:
codex-cli 0.140.0-alpha.2What subscription do you have?
Not included here; this appears to be a native macOS Dock Tile plugin crash and not subscription-dependent.
What platform is your computer?
Darwin 25.5.0 arm64 armmacOS:
26.5.1 (25F80)Architecture:
arm64What issue are you seeing?
After reboot,
com.apple.dock.external.extra.arm64continued crashing repeatedly over roughly 20 minutes while Codex26.609.41114was installed.Crash reports show:
EXC_BAD_ACCESS / SIGSEGVThread stack size exceeded due to excessive recursion-[CodexDockTilePlugin_com_openai_codex setDockTile:]The installed app is the official signed app:
codex-app2DC432GLL2codesign --verify --deep --strict /Applications/Codex.apppassesThe app declares:
The installed plugin is:
Relevant disassembly from the installed official binary:
This appears to recursively call
setDockTile:from insidesetDockTile:, matching the stack-overflow crash.What steps can reproduce the bug?
26.609.41114/ build3888on macOS.com.apple.dock.external.extra.arm64.CodexDockTilePlugin_com_openai_codex setDockTile:and show excessive recursion / stack exhaustion.No code snippet, session id, token limit, or context window usage applies. This is a native macOS app/Dock plugin crash.
What is the expected behavior?
Codex should not crash the macOS Dock external plugin host. The Dock Tile plugin should store/update the
NSDockTilewithout recursively re-enteringsetDockTile:.Additional information
I checked the official production appcast today. The latest macOS arm64 item is still
26.609.41114/ build3888, so there is no newer production build available through the appcast yet.As a workaround, I downloaded the previous official production appcast version
26.608.12217/ build3722and verified its signature withcodesign --verify --deep --strict. That version does not containNSDockTilePlugIninInfo.plistand does not includeCodexDockTilePlugin.plugin, so rollback to26.608.12217avoids this Dock Tile plugin crash path.I am intentionally not attaching full crash logs here because they may contain local machine details, but the stack signature matches this issue.
Update: still reproducible on Codex Desktop 26.609.71450, now correlated with WindowServer watchdog reboots
I am seeing the same Dock tile plugin recursion crash on the current Codex Desktop build after reinstalling/updating:
com.openai.codex26.609.714503965codex-cli 0.140.0-alpha.2com.openai.codex.dock-tile-plugin1.015.7.3 (24G419)MacBookPro16,2This is no longer only a Dock XPC crash. On this machine, multiple full GUI freezes / automatic restarts on 2026-06-16 are strongly correlated with the same Codex Dock tile plugin crash loop.
What happened
The machine froze/restarted multiple times on 2026-06-16. The immediate process killed by macOS was
WindowServervia userspace watchdog:WindowServer-2026-06-16-115103.ipsWindowServer-2026-06-16-134241.ipsWindowServer-2026-06-16-135347.ipsAll three reports show:
termination.namespace: WATCHDOGtermination.indicator: monitoring timed out for serviceDisplay 69734272 not ready: DisplayID: 0x4280f80[Waiting]The corresponding WindowServer watchdog spindumps all explicitly include:
Affected spindumps:
WindowServer_2026-06-16-115121_HarveyMac.userspace_watchdog_timeout.spinWindowServer_2026-06-16-134255_HarveyMac.userspace_watchdog_timeout.spinWindowServer_2026-06-16-135359_HarveyMac.userspace_watchdog_timeout.spinDock XPC crash evidence
There are multiple
com.apple.dock.external.extra.x86_64crash reports on the same day:com.apple.dock.external.extra.x86_64-2026-06-16-115317.ipscom.apple.dock.external.extra.x86_64-2026-06-16-115352.ipscom.apple.dock.external.extra.x86_64-2026-06-16-134550.ipscom.apple.dock.external.extra.x86_64-2026-06-16-134550.000.ipscom.apple.dock.external.extra.x86_64-2026-06-16-135441.ipscom.apple.dock.external.extra.x86_64-2026-06-16-141641.ipsEvery parsed report has the same shape:
com.apple.dock.external.extra.x86_64EXC_BAD_ACCESSSIGSEGVKERN_PROTECTION_FAILURE0The used image includes:
One crash observed during live verification at
2026-06-16 14:16:41 +0800reached:This suggests the issue persists after reinstall/update and is still active on
26.609.71450.Why I think this is causing the reboots/freezes
The system-level chain in the diagnostics is:
There are also Codex disk-write diagnostics showing repeated ~2.15 GB writes, but those look like a separate/high-load issue. The WindowServer spindumps directly mention the Dock external-extra SIGSEGV, so the Dock tile plugin path is the stronger causal evidence for the freezes/restarts.
Requested fix / mitigation
Could the Codex Desktop team please investigate
CodexDockTilePlugin_com_openai_codex setDockTile:for recursivesetDockTile:calls or re-entrant Dock tile update behavior?A user-accessible mitigation would also help, such as:
NSDockTilePlugInuntil this is fixed, orsetDockTile:calls.I can provide the
.ips,.spin, and Codex disk-write diagnostic files privately if needed. I am avoiding uploading raw diagnostics directly to this public issue because they may contain local paths/process metadata.Adding another confirmation for the current Codex Desktop build, with an uploaded in-app feedback ID.
Environment
26.609.714503965com.openai.codexcom.openai.codex.dock-tile-plugin, version1.0 (1)26.5.1 (25F80)arm64/Applications/Codex.app019ecf23-44bc-7891-b30e-a6d7bc248cceObserved behavior
After reinstalling Codex.app, macOS Dock / WindowServer became sluggish. Multiple apps would bounce in the Dock but appear slow or fail to open normally.
DiagnosticReports show repeated crashes for:
The crashing stack matches this issue exactly:
One local report shows:
Local checks / mitigations attempted
codesign --verify --deep --strict --verbose=2 /Applications/Codex.apppassed.spctl --assess --type execute --verbose=4 /Applications/Codex.appreturned accepted.lsd.DockIconPreferenceDockIconResourceNameI am not attaching full
.ipsfiles publicly because they contain local machine paths and process metadata, but the full diagnostics were uploaded through the Codex in-app feedback flow under the Feedback ID above.Workaround (verified): disable the Dock Tile plugin — note it needs macOS "App Management" permission
Same crash here — Codex
26.609.71450(build 3965), macOS 26.5 (25F71), Mac Studio M4 Max, dual display (one external). DiagnosticReports showcom.apple.dock.external.extra.arm64crashing repeatedly (storms ~every 10 s right after login, then ~every 20 min), allEXC_BAD_ACCESS / SIGSEGVin the recursive-[CodexDockTilePlugin_com_openai_codex setDockTile:]stack. It also trippedWindowServeruserspace_watchdog_timeout→ full GUI freeze → forced power-off, twice.Key detail: the crash fires even when Codex.app is not running, as long as Codex is pinned in the Dock — so it's the Dock loading the plugin, not the app.
Heads-up: renaming/removing the plugin fails with
Operation not permitted— even withsudo— because Codex.app is notarized and macOS App Management protects its bundle. You first have to grant your terminal App Management (System Settings → Privacy & Security → App Management), then quit & reopen it. After that, nosudois needed:Revert after an official fix:
Verified on my machine: after disabling,
com.apple.dock.external.extrastays up with zero new crashes (previously it crash-looped within ~10 s of every Dock restart). Only the Dock tile's right-click menu / badge updates are lost — core Codex (app, agent, CLI) is unaffected. Caveat: this invalidates the bundle's code signature and is restored on the next Codex update, so re-apply if the bug is still present.No-permission alternatives (don't touch the bundle):
defaults write com.apple.spaces spans-displays -bool true, then log out) — drops the secondary-display Dock that's the one crashing.Diagnosed and workaround verified with Claude Opus 4.8 (1M context) via Claude Code.
Adding another current-build data point from a Mac16,10 Apple Silicon machine.
Environment
26.5.1 (25F80)Mac16,10arm6426.611.61049/ build399626.611.61753/ build4008ChromiumBaseBundleVersion:7827.115NSDockTilePlugIn = CodexDockTilePlugin.pluginWhat happened
Codex.app initially launched but the window became unresponsive / exited shortly after launch. The strongest local evidence is the same Dock tile plugin recursion reported in this thread:
com.apple.dock.external.extra.arm64/Applications/Codex.app/Contents/PlugIns/CodexDockTilePlugin.plugin/Contents/MacOS/CodexDockTilePluginobjc_storeStrong-[CodexDockTilePlugin_com_openai_codex setDockTile:]37331frames beforeEXC_BAD_ACCESS / SIGSEGVat the stack guard.Additional system impact
This also drove
syspolicydinto a high-CPU validation loop after Codex/Dock retries:A short
fs_usagesample whilesyspolicydwas hot showed repeated activity against Codex paths, especially:The app signature itself looked clean:
I also downloaded the official production DMG from
https://persistent.oaistatic.com/codex-app-prod/Codex.dmgon 2026-06-17. The mounted app was26.611.61753/ build4008, andcodesign --verify --deep --strictpassed before installation. After replacing/Applications/Codex.appwith that official build, launching Codex still produced a newcom.apple.dock.external.extra.arm64diagnostic report and the app did not remain open.Workaround observations
CodexDockTilePlugin.pluginstopped new Dock external-extra crashes in local testing, but this invalidates the official bundle/signature and is not a good user workaround.I am not attaching raw
.ipsfiles publicly because they include local process/path metadata, but the crash signature matches the recursiveCodexDockTilePlugin_com_openai_codex setDockTile:issue exactly.I can reproduce the same issue on a newer Codex Desktop build.
Environment:
Observed behavior:
com.apple.dock.external.extra.arm64/Applications/Codex.app/Contents/PlugIns/CodexDockTilePlugin.pluginCodexDockTilePlugin_com_openai_codex setDockTile:Thread stack size exceeded due to excessive recursionI also removed Codex from persistent Dock apps and restarted Dock. That did not stop the crashes while Codex Desktop was still running, so the plugin appears to be loaded for the running app itself, not only for a pinned Dock item.
codesign --verify --deep --strict --verbose=2 /Applications/Codex.appsucceeds, and Gatekeeper accepts the app asNotarized Developer ID.Additional syspolicyd observation:
A 20-second
fs_usagecapture whilesyspolicydwas active showed repeated checks around Codex Desktop:So this still reproduces on
26.611.61753, and appears to trigger repeated Dock extra crashes plus repeated Gatekeeper/XProtect checks for/Applications/Codex.app.Still reproduces on
26.611.61753(2026-06-17) — the update re-installs the identical broken plugin.Following up on my earlier comment. Codex auto-updated
26.609.71450→26.611.61753, and the update overwrote my disabled plugin with a fresh active one. The plugin binary is the same size as before (73648bytes, plugin bundle version still1.0) — i.e., the Dock tile plugin itself appears unchanged.Confirmed it's the same crash: force-loading the new plugin with
killall Dockproduced 13com.apple.dock.external.extra.arm64crashes in ~100 s (~every 10 s). Signature is identical:Re-disabling the plugin stops it again immediately (0 crashes, external Dock XPC stays up).
Environment: macOS 26.5.1 (25F80), Mac Studio M4 Max (
Mac16,9), dual display (one external).Practical note for anyone applying the workaround: it has to be re-applied after every Codex update, because each update reinstalls the active plugin.
Confirmed with Claude Opus 4.8 (1M context) via Claude Code.
I can confirm a safe local workaround for this class of crashes without modifying the signed app bundle.
Environment:
com.apple.dock.external.extra.arm64Before the workaround, the crash reports still reproduced on 2026-06-19. The latest local report had:
consecutiveCrashCount: 51EXC_BAD_ACCESS / SIGSEGV-[CodexDockTilePlugin_com_openai_codex setDockTile:]/Applications/Codex.app/Contents/PlugIns/CodexDockTilePlugin.plugin/...The current app bundle still declares:
Workaround that stopped the crashes locally:
程序坞版块.killall Dock, or reboot.This does not change files inside
/Applications/Codex.app, so it avoids breaking the app signature.Verification after disabling the extension and rebooting:
com.apple.dock.external.extra.arm64*.ipsreports since bootFor comparison, before disabling the extension, local reports on the same day appeared at about 10:54:47, 11:34:47, and 11:54:48 CST, so the post-workaround clean window is meaningful for this machine.
Core Codex functionality appeared unaffected after disabling the Dock Tile extension; this only seems to remove Dock tile integration such as custom Dock tile state/badges/menus.
It may be worth documenting this as the safest temporary workaround until the recursive
setDockTilecrash is fixed, or disabling/shielding the Dock Tile extension by default when it fails repeatedly.@loccen
Good job, this workaround fixed it for me as well.
Environment:
I disabled the Codex Dock Tile extension via:
System Settings -> General -> Login Items & Extensions -> Extensions -> Codex Extensions -> Dock Tile
After restarting Dock, Codex’s
Info.pliststill declares: