Codex App: CodexDockTilePlugin setDockTile: infinite recursion → stack-overflow crash (EXC_BAD_ACCESS) on macOS 27

Resolved 💬 2 comments Opened Jun 16, 2026 by jizhi0v0 Closed Jun 16, 2026

What version of the Codex App are you using? (From "About Codex" dialog)

26.609.71450 (build 3965)

What subscription do you have?

N/A — this is a native crash that appears independent of plan. Happy to provide if needed.

What platform is your computer?

uname -mprs: Darwin 27.0.0 arm64 arm
macOS 27.0 (build 26A5353q), Apple Silicon (arm64).

What issue are you seeing?

The Codex dock tile plugin crashes with an infinite recursion / stack overflow.

-[CodexDockTilePlugin_com_openai_codex setDockTile:] re-enters itself ~37,330 frames deep until it hits the stack guard page → EXC_BAD_ACCESS (SIGSEGV).

The crash is generated inside macOS's Dock dock-tile XPC host (com.apple.dock.external.extra.arm64), so it shows up in Crash Reporter under that Apple process name — but the faulting image is Codex's plugin:
/Applications/Codex.app/Contents/PlugIns/CodexDockTilePlugin.plugin/Contents/MacOS/CodexDockTilePlugin

It crashed 18 times in ~45 minutes (09:52–10:35, all identical, recursion depth 37330) during normal use.

Crash signature (PII redacted):

Exception:  EXC_BAD_ACCESS (SIGSEGV), KERN_PROTECTION_FAILURE
Message:    Could not determine thread index for stack guard region
OS:         macOS 27.0 (26A5353q), arm64

Triggered thread:
  0  objc_storeStrong
  1  -[CodexDockTilePlugin_com_openai_codex setDockTile:]
  2  -[CodexDockTilePlugin_com_openai_codex setDockTile:]   <-- recursionInfoArray depth: 37330
  ...
     _dispatch_call_block_and_release
     _dispatch_main_queue_drain
     __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__
     -[NSApplication run] / NSApplicationMain / xpc_main

Host process:    com.apple.dock.external.extra.arm64  (Dock dock-tile XPC service, Apple first-party)
Faulting image:  /Applications/Codex.app/Contents/PlugIns/CodexDockTilePlugin.plugin

Looks like setDockTile: is calling itself (e.g. a setter re-entering itself instead of super / the backing ivar), which becomes a fatal unbounded recursion.

What steps can reproduce the bug?

Not yet deterministic — it occurred repeatedly during normal Codex App use on macOS 27.0. It appears tied to dock-tile/badge updates (the crashes came in a tight burst). I'll update with a reliable repro if I find one.

What is the expected behavior?

The dock tile plugin should update the Dock tile without recursing into itself / crashing the Dock's XPC host.

Additional information

  • 18 identical crash reports, all EXC_BAD_ACCESS, all recursion depth 37330.
  • Possibly newly introduced: all crashes are from a single day; no earlier occurrences found locally.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗