macOS GUI apps launched from Codex sandbox abort at _RegisterApplication
Description
Launching macOS GUI applications from a Codex sandboxed shell can crash the target app immediately with SIGABRT at _RegisterApplication.
This appears broader than a single app-specific CLI integration. I reproduced it with both Google Chrome and LibreOffice, and it is similar in shape to openai/codex#13706, but these repros do not depend on Obsidian's CLI/socket behavior.
Environment
- Codex Desktop
- macOS 26.5.1 (25F80)
- Apple Silicon Mac, model code observed in crash report:
Mac17,2 - Sandbox mode: workspace-write / default sandboxed command execution
- Chrome: reproduced with
149.0.7827.158; after clean reinstall, reproduced again with149.0.7827.197 - LibreOffice:
26.2.4.2
Reproduction: Chrome
From a Codex sandboxed shell, run:
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \
--headless=new \
--user-data-dir=/private/tmp/chrome-codex-smoke \
--no-first-run \
--no-default-browser-check \
--disable-gpu \
--dump-dom about:blank
Observed result:
- Command exits with code
134 - Crash report shows
EXC_CRASH (SIGABRT)/Abort trap: 6 - Crash report parent/responsible process is Codex/codex
- Faulting main-thread frames include:
abort
___RegisterApplication_block_invoke
_dispatch_once_callout
_RegisterApplication
TransformProcessType
ChromeMain
main
Running the same Chrome launch outside the sandbox via elevated execution / LaunchServices succeeds. A headless smoke test returned:
{
"Browser": "Chrome/149.0.7827.197",
"Protocol-Version": "1.3"
}
Reproduction: LibreOffice
From a Codex sandboxed shell, run:
soffice --headless \
-env:UserInstallation=file:///private/tmp/libreoffice-smoke-profile \
--convert-to pdf \
--outdir /private/tmp \
/private/tmp/libreoffice-smoke.txt
Observed result:
- Command exits with code
134 - Crash report shows
EXC_CRASH (SIGABRT)/Abort trap: 6 - Crash report parent/responsible process is Codex/codex
- Faulting main-thread frames include:
abort
___RegisterApplication_block_invoke
_dispatch_once_callout
_RegisterApplication
GetCurrentProcess
-[NSApplication init]
+[NSApplication sharedApplication]
create_SalInstance
CreateSalInstance
InitVCL
soffice_main
main
Running the same LibreOffice conversion outside the sandbox succeeds:
convert /private/tmp/libreoffice-smoke.txt as a Writer document -> /private/tmp/libreoffice-smoke.pdf using filter : writer_pdf_Export
Expected behavior
Codex should not make these failures look like app crashes caused by Chrome/LibreOffice themselves. Ideally Codex would either:
- detect that the command is launching a macOS GUI app and prompt/escalate to run it outside the sandbox, or
- fail early with a clear sandbox limitation message rather than letting the GUI app abort in macOS app registration.
Notes
This looks related to openai/codex#13706, but the Chrome and LibreOffice repros suggest the problem is not limited to Obsidian's CLI behavior. The common failure point is macOS app registration from a Codex-spawned sandboxed process.
8 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
Confirming this still reproduces in the current unified ChatGPT/Codex desktop build, and that it affects Electron development runtimes as well as Chrome/LibreOffice.
Environment
26.707.41301(CFBundleVersion 5103)codex-cli 0.144.0-alpha.4150.0.7871.11526.5.1 (25F80)MacBookAir10,1, Apple Silicon41.5.0, launched from a Node-based development harnessObserved behavior
Commands which launch the development
Electron.appfrom Codex produce native crash reports before the application's JavaScript main process starts:The crash reports identify
ChatGPTas the responsible process andcom.openai.codexas the coalition. The macOS unified log gives the underlying reason:Repeated or parallel agent validation attempts create a separate macOS crash report for every launch. In one session this produced two bursts of five reports, making the problem look like an Electron/application regression rather than a Codex sandbox limitation.
Workaround
Running Electron-launching validation commands outside the sandbox through the escalation/approval path avoids this boundary. We have added repository guidance requiring escalation for Electron, smoke, profile, and E2E launch commands.
Requested behavior
The ideal behavior remains what the original report proposes: detect macOS GUI application launches and request escalation automatically. At minimum, Codex should fail before spawning the GUI child with a clear diagnostic. Allowing AppKit to call
abort()creates misleading crash reports and makes downstream application maintainers investigate crashes that occurred before their code ran.Related reports with the same broader sandbox boundary include #13706 and the Chromium Mach-service failure in #31560.
Confirming that this issue is still reproducible in the current ChatGPT/Codex Desktop version
26.727.51351, released on August 1, 2026.This is not an isolated crash. macOS generated seven reports with the same crash fingerprint during normal Playwright/browser-testing work initiated from Codex:
<details>
<summary>Sanitized representative crash report</summary>
The following excerpt has been sanitized. User paths, process IDs, incident IDs, crash reporter keys, device identifiers, boot/wake UUIDs, exact timestamps, memory addresses, and register state were removed.
All seven reports have the same relevant signature: Chrome for Testing
151.0.7922.34,SIGABRT, andTransformProcessType -> _RegisterApplication -> abort, withChatGPTas the responsible process andcom.openai.codexas the coalition.</details>
The issue is still current and disrupts normal browser-testing workflows by generating repeated macOS crash reports and dialogs. It needs a product-level fix. Requiring manual escalation for every affected launch is not an adequate long-term solution; Codex should automatically detect these macOS GUI/headless browser launches and escalate them, or fail early with a clear sandbox diagnostic before spawning a process that aborts.
Confirming a related variant on macOS
27.0 (26A5388g), Apple Silicon, with ChatGPT/Codex Desktop26.727.51351.This affects the normal installed
/Applications/Google Chrome.app(151.0.7922.72), not only Chrome for Testing or an explicitly launched Playwright command.While Codex was open, macOS generated 34 Chrome crash reports in one session. Representative reports identify
com.openai.codexas the coalition andChatGPTas the responsible process. The failure isEXC_CRASH (SIGABRT)/Abort trap: 6, with the main thread ending in:Normal interactive launching of the same Chrome app succeeds, so this appears specific to the Codex-spawned/sandboxed launch path. In this case the user did not intentionally open Chrome or initiate browser testing; the repeated launches occurred in the background and produced intrusive crash dialogs.
This supports detecting the launch before spawning Chrome and either escalating automatically or surfacing a clear sandbox diagnostic instead of retrying.
Confirming this is still reproducible in the current ChatGPT/Codex Desktop build and with the normal installed Chrome app.
Environment
26.803.41515(CFBundleVersion 6321)26.5 (25F71)151.0.7922.109Current impact
macOS recorded 11 distinct Google Chrome crash incidents during the last 24 hours. Two pairs occurred within the same second, so these are separate process incidents rather than duplicate report files. The ordinary interactive Chrome instance remained healthy under
launchd; only additional Chrome processes associated with Codex aborted.Every incident has the same relevant fingerprint:
The reports identify
ChatGPTas the responsible process andcom.openai.codexas the coalition. The direct parent for the checked incidents was a short-livednodeprocess.The macOS unified log for a representative incident contains:
The transient Node parent also shows Codex sandbox denials. Chrome aborts about 0.2 seconds after launch while registering as a foreground application. The same failure occurred again after a full Mac reboot, so restarting Chrome or macOS does not clear it.
This newer build evidence supports the requested product behavior: detect this launch path before spawning the GUI child, then escalate or fail with a clear sandbox diagnostic instead of generating repeated native Chrome crash reports.
Also confirming it's reproducible on this end. Even happening on MacOS 27 Beta.
For others who hit this before it's fixed, here's what I told codex:
The Chrome plugin is enabled in config.toml, and its launcher forces a separate instance using open -n in [open-chrome-window.js] (line 345). The crash happens before Chrome reads the selected profile, so deleting or repairing profiles will not help.
I can reproduce the same
_RegisterApplicationSIGABRT pattern on macOS 26.6.2 with Codex Desktop 26.820.60940. Across 20 to 27 August this Mac retained 33 matching reports: 12 Playwright, 10 Firefox, 6 Google Chrome and 5 React Native DevTools. The reports consistently shownodeas parent and ChatGPT/Codex as the responsible process or resource coalition. Three React Native DevTools crashes on 27 August followed separate Codex-started Expo Metro sessions. This turns normal Codex tooling into repeated user-visible “quit unexpectedly” dialogs. Please detect GUI launches in the sandbox and escalate or fail early, and avoid launching Expo DevTools in this context.