macOS: Codex Desktop/app-server appears to exhaust syspolicyd, causing spctl “Too many open files” globally
Summary
On macOS 26.2, after running Codex Desktop for a while, Gatekeeper/SystemPolicy enters a broken state where spctl returns Too many open files for every assessed path, including /bin/ls, /tmp, newly-created text files, zip files, DMGs, and unrelated apps. Finder then reports unrelated apps/DMGs as "damaged" and suggests moving them to Trash.
This looks related to existing syspolicyd/Gatekeeper issues, but I am filing a new issue because it reproduces on Codex Desktop 26.608.12217 and local diagnostics point specifically at /Applications/Codex.app/Contents/Resources/codex / app-server / temporary codex-execve-wrapper paths rather than a single downloaded app.
Related issues: openai/codex#25243, openai/codex#25882, openai/codex#26869.
Environment
- macOS: 26.2, build
25C56 - Architecture: Apple Silicon / arm64e
- Hardware model from diagnostics:
MacBookPro18,2 - Codex Desktop:
26.608.12217(CFBundleVersion3722) - Codex binary being diagnosed:
/Applications/Codex.app/Contents/Resources/codex - SIP: enabled
- Gatekeeper assessments: enabled
User-visible symptoms
- Freshly downloaded DMGs show the macOS dialog:
"<file>.dmg" is damaged and can't be opened. You should move it to the Trash. - Existing apps show the same kind of "damaged" dialog.
- The affected files are not actually corrupt. Example: a Royal TSX DMG verified successfully with
hdiutil verify, andcodesignreported a valid Developer ID signature and stapled notarization ticket.
Local diagnostics
spctl fails globally once the system is in this state:
$ spctl --assess --type execute --verbose=4 /bin/ls
/bin/ls: Too many open files
$ spctl --assess --type open --context context:primary-signature --verbose=4 ~/Downloads/royaltsx_5.0.4.1000.dmg
~/Downloads/royaltsx_5.0.4.1000.dmg: Too many open files
$ spctl --assess --type open --context context:primary-signature --verbose=4 /tmp/plain.txt
/tmp/plain.txt: Too many open files
This is not global file descriptor exhaustion:
$ sysctl kern.num_files kern.maxfiles kern.maxfilesperproc
kern.num_files: 14048
kern.maxfiles: 491520
kern.maxfilesperproc: 245760
$ ulimit -n
1048575
syspolicyd looked unhealthy when the issue occurred:
$ top -l 1 -pid <syspolicyd-pid> -stats pid,command,cpu,mem,rsize,vsize,threads,time
PID COMMAND %CPU MEM MEM VSIZE #TH TIME
530 syspolicyd 0.0 801M 801M N/A 29 02:24:31
System diagnostics also recorded syspolicyd doing sustained SQLite/WAL writes:
Command: syspolicyd
Path: /usr/libexec/syspolicyd
Event: disk writes
Writes: 2147.49 MB of file backed memory dirtied over 25569 seconds
Heaviest stack: sqlite3_step -> sqlite3VdbeExec -> pagerWalFrames -> unixWrite -> guarded_pwrite_np
Evidence pointing at Codex
There are repeated macOS diagnostic reports for the Codex binary itself:
Command: codex
Path: /Applications/Codex.app/Contents/Resources/codex
Codesigning ID: codex
Team ID: 2DC432GLL2
Event: disk writes
Writes: 2147.49 MB over 1667 seconds
Writes: 8589.93 MB over 3518 seconds
Writes: 8589.94 MB over 6479 seconds
Heaviest stack: ... -> pwrite
Local Codex state also contains many temporary arg0 wrapper entries:
$ find ~/.codex/tmp/arg0 -maxdepth 2 -name codex-execve-wrapper -print | wc -l
15
$ stat -f '%Sm %N -> %Y' -t '%Y-%m-%d %H:%M:%S' ~/.codex/tmp/arg0/codex-arg0*/codex-execve-wrapper
...
2026-06-12 01:54:51 ~/.codex/tmp/arg0/codex-arg0IgknVX/codex-execve-wrapper -> /Applications/Codex.app/Contents/Resources/codex
2026-06-12 01:55:18 ~/.codex/tmp/arg0/codex-arg0wc32Ni/codex-execve-wrapper -> <VS Code extension>/bin/macos-aarch64/codex
2026-06-12 01:57:57 ~/.codex/tmp/arg0/codex-arg0Tmh6By/codex-execve-wrapper -> <npm global codex>/vendor/aarch64-apple-darwin/codex/codex
The wrapper is a symlink to a signed Codex binary:
$ codesign -dv --verbose=2 ~/.codex/tmp/arg0/<one-dir>/codex-execve-wrapper
Executable=/Applications/Codex.app/Contents/Resources/codex
Identifier=codex
Authority=Developer ID Application: OpenAI OpCo, LLC (2DC432GLL2)
TeamIdentifier=2DC432GLL2
Runtime Version=15.5.0
Codex Desktop logs also show very active app-server state around this time, including repeated AppServerConnection entries and repeated warnings like:
[electron-message-handler] No owner repo found for remote task taskId=...
The currently observed process tree includes multiple Codex app-server / node_repl processes. On this machine I did not find evidence that Locked Computer Use was installed as a SecurityAgentPlugin, and SkyComputerUseService was not running during the later inspection, so the strongest local signal is app-server / shell-tool execution / codex-execve-wrapper, not Computer Use specifically.
Expected behavior
Codex Desktop/app-server/tool execution should not drive syspolicyd into a state where spctl globally fails with Too many open files, and unrelated apps/DMGs should not be reported as damaged.
Actual behavior
After Codex has been running for some time, spctl fails for all files with Too many open files, and Finder/Gatekeeper reports unrelated apps and DMGs as damaged.
Workarounds tried / notes
sudo launchctl kickstart -k system/com.apple.security.syspolicydoes not work with SIP enabled:
Could not kickstart service "com.apple.security.syspolicy": 150: Operation not permitted while System Integrity Protection is engaged
- Rebooting clears the state, but the problem recurs.
- Quitting Codex Desktop and killing
syspolicyd/trustdis likely less disruptive than rebooting, but the root cause appears to be Codex repeatedly triggering the condition.
Ask
Could the team investigate whether Codex Desktop/app-server or the temporary ~/.codex/tmp/arg0/.../codex-execve-wrapper mechanism can repeatedly trigger Gatekeeper/SystemPolicy assessment or excessive SystemPolicy DB writes on macOS 26.2?
If there is a narrower diagnostic flag/logging command for app-server/tool execution on macOS, I can collect that output.
15 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
I submitted related in-app feedback with Feedback ID: 019ed2cb-eea6-7851-be4d-8be66a992d92.
My local checks on macOS 26.5.1 build 25F80 showed the same Gatekeeper/SystemPolicy failure family:
spctl --assess --type execute --verbose=4 /bin/lsfailed withinternal error in Code Signing subsystem. The same error also occurred when assessing Codex, Cursor, a normal local Markdown file, and/opt/homebrew/bin/openai.The visible user-facing symptom was macOS showing:
"openai" is damaged and can’t be opened. You should move it to the Trash.The Homebrew OpenAI CLI still ran from Terminal (openai version 1.2.0) and codesign showed it was signed byDeveloper ID Application: OpenAI OpCo, LLC (2DC432GLL2), so this did not look like a corrupted local file. It looked like the same broader SystemPolicy/Gatekeeper broken state described in this issue.Same failure family here on macOS 26.2 (build 25C56), Codex Desktop 26.611.62324, Apple Silicon. I want to add a concrete, fixable root cause that I was able to verify on my machine, because in my case the trigger was not a respawn storm — it was the default
launchctlfile-descriptor limit being far too low for Codex's bundle size.Root cause:
launchctl limit maxfilesdefaults to 256syspolicydis launched bylaunchdand inherits the globallaunchctlmaxfilessoft limit, which on a stock install is just 256:Codex.app ships a very large bundle. On my install it has 7898 Sealed Resources, dominated by an embedded Node runtime:
When Gatekeeper assesses this bundle,
syspolicydopens a large number of files at once and blows past the 256 soft limit, after which every assessment fails with EMFILE globally — exactly the symptoms in this thread (/bin/ls, DMGs, unrelated apps all reported "damaged" /Too many open files). Note the system file table is nowhere near full when this happens:So it is not global FD exhaustion — it's the per-daemon 256 soft cap being too small for a 7898-file bundle.
codesign --verifypasses (it doesn't fan out across all sealed files the same way), which is why the bundle is valid yetspctlfails.Fix that worked for me (and held)
Raising the
launchctllimit and restartingsyspolicydresolved it completely in my case:After this, 5 consecutive
spctl -a /Applications/Codex.appruns all returnedaccepted, Codex and VS Code launched normally, andsyspolicydCPU dropped from ~59% back to ~1%. Crucially, it stayed fixed after launching Codex — re-assessing repeatedly kept passing.To make it survive reboot I added a LaunchDaemon:
Caveat
In my case Codex's main process was stable (single PID, no respawn loop), so raising
maxfileswas a genuine fix. For the reports here where Codex is also doing aposix_spawnstorm of its own GUI binary (#26869 and others), raisingmaxfileswill only delay exhaustion — that part still needs an app-side backoff/retry cap.Suggestions for the Codex team
cua_nodeships ~2755.hheaders and a full bundlednpm(with its ownnode_modules) that aren't needed at runtime. Trimming dev artifacts / archiving JS into asar would drop the sealed-resource count dramatically and ease the pressure onsyspolicyd.launchctl limit maxfilesworkaround for affected macOS users until the bundle is slimmed down.Environment for the record: macOS 26.2 (25C56), Codex 26.611.62324, Apple Silicon, SIP enabled, Gatekeeper enabled.
Update (2026-06-19): My earlier claim that raising
maxfilesto 65536 "fixed it and held" was premature. While it significantly reduces the frequency (from minutes to hours), the underlying issue —codex app-servercontinuously spawning the GUI binary and triggering Gatekeeper assessments without backoff — still causes intermittentsyspolicydCPU churn (saw 159%!) and transient FD spikes. When saturated, syspolicyd fails globally again.Root cause confirmed (matches #16767, #26869):
codex app-server's unbounded posix_spawn + no-cache assessments drive syspolicyd into CPU runaway. Raising maxfiles helps but doesn't fix the app-side bug.Practical mitigation: Quit Codex Desktop (Cmd+Q) when not in use. The CLI (
codex exec) doesn't run app-server persistently. For those keeping it open, I wrote a watchdog that auto-restarts syspolicyd when CPU/RSS spikes: https://github.com/zyzhou9/my-claude-work/tree/master/scriptsApologies for the earlier overconfidence — this is genuinely a tough one to pin down.
Adding another sanitized data point that appears to match this issue exactly.
Environment
Codex.appitself verifies as signed/notarized:User-visible impact
Unrelated apps and DMGs started showing macOS "damaged and can't be opened" dialogs. The affected items were not actually corrupt:
hdiutil verifyreportedchecksum ... is VALID.codesign --verify --deep --strictpassed; signed byTELEGRAM MESSENGER LLP (6N38VWS5BX); notarization ticket stapled.codesign --verify --deep --strictpassed; signed byMicrosoft Corporation (UBF8T346G9); notarization ticket stapled.Yet Gatekeeper/SystemPolicy failed with:
For VS Code Insiders specifically, LaunchServices could spawn/check in the app, then AppleSystemPolicy killed it shortly after:
So the downstream failure was not just a stale Finder dialog. macOS policy enforcement actively killed an unrelated signed/notarized app after launch.
syspolicyd / AppleSystemPolicy evidence
The system-wide file table was not close to full:
Representative unified-log lines:
In one 10-minute sample while Codex Desktop was running, filtered logs counted approximately:
In a later 60-second sample, while the machine was already in the bad state, there were about:
Recovery behavior
syspolicyd, but the issue recurred after Codex Desktop was running again.sudo launchctl kickstart -k system/com.apple.security.syspolicywas blocked by SIP:Notes
This does not look like corruption of Stremio, Telegram, or VS Code Insiders. It looks like Codex Desktop repeatedly triggering macOS SystemPolicy assessment of its own executable/helpers until
syspolicydenters an EMFILE/broken-state condition, after which unrelated signed/notarized apps and DMGs are rejected or killed.A useful product-side mitigation would be a safe mode / feature-disable path that avoids high-risk helper/plugin startup, plus bounded retry/backoff around any path that can trigger repeated policy assessment of
/Applications/Codex.app/Contents/MacOS/Codexorcode_sign_clone/.../Codex.app.bundle/Contents/MacOS/Codex.I hit a very similar failure mode, but in my case the strongest local signal was the Computer Use / SkyComputerUse runtime rather than only
codex-execve-wrapper.Symptoms
syspolicyd/trustdshowed sustained high CPU.spctlreturnedToo many open filesfor otherwise valid apps.Example:
After recovery, the same check returned:
Important observation
Disabling the Computer Use plugin was not sufficient by itself.
I had:
but Codex Desktop still restored a user-level runtime app under:
and it could also write back a
notifyhook pointing to:That means Computer Use can still be invoked indirectly through:
even when the plugin itself appears disabled.
Workaround that stabilized my machine
This is not a product fix, but it stopped the recurrence locally.
notify = [...SkyComputerUseClient..., "turn-ended"]line from~/.codex/config.toml./Applications/Codex.app, since that can break the app signature.syspolicydhad already entered the broken state. Trying to restartcom.apple.security.syspolicydirectly was blocked by SIP.Expected:
SkyComputerUseService/SkyComputerUseClientprocessToo many open filesspctlreturnsacceptedReverting the workaround
If you want to re-enable Computer Use later:
Then re-enable Computer Use from Codex settings/config and restart Codex.
Suggested product-side fix
Codex Desktop should probably not auto-install, auto-restore, launch, or write a
notifyhook for Computer Use when:[features].computer_use = false, or[plugins."computer-use@openai-bundled"].enabled = falseAlso, uninstalling/disabling Computer Use should remove or ignore any
notifyhook that points toSkyComputerUseClient.The key issue here is that the visible plugin state and the actual user-level Computer Use runtime state can diverge. When they diverge,
SkyComputerUseClientmay still be invoked and can contribute to the same global Gatekeeper /syspolicydfailure pattern described in this issue.This is a huge problem and renders codex app unusable on my machine.
I encountered this syspolicyd problem yesterday on a very fresh version:
Version 26.616.71553 • Released Jun 23, 2026
I tried many ways I can find in all comments from all issues I can found but no one works.
Until I found a stray/corrupted .git folder under one of my codex working directory, which contains multiple repos (but it should not have its own .git).
I removed it and everything is fine now.
After open Codex App, syspolicyd will run at ~50% for only couple seconds, not infinitively 150% anymore.
computer use, browsers, etc. are all enabled.
Hope this helps.
Yes, it was caused by empty .git folders from syncthing on my machine. Codex should handle this gracefully without essentially rendering your OS unusable.
Reproduced this today (2026-07-16) via the ChatGPT macOS app (not the standalone Codex.app), which bundles the same
codex app-server. Adding a data point that may help narrow the root cause:Timeline (sampled every 15s):
syspolicydidle at 0-0.3% CPU, no hung processes.syspolicydCPU jumped to 81.4%, 2 new processes stuck at <=128KB RSS (dyld startup stage).brew shellenvinvoked by zsh login startup) got stuck for 4.5 minutes at 32KB RSS, blocking Terminal from presenting a shell prompt at all.New finding - quitting the app is not sufficient:
killall ChatGPT(or quitting normally) only kills the top-level app. Thecodex app-serverprocess (/Applications/ChatGPT.app/Contents/Resources/codex ... app-server --analytics-default-enabled) gets reparented to launchd (PPID becomes 1) and keeps running and keeps spawning newnode_replchildren (observed count grow from 2 to 3 with zero user interaction after the app was quit).syspolicydstayed pegged at ~54% the whole time it was orphaned.Only after manually
kill -9-ing the orphanedapp-serverPID (and its remaining children) didsyspolicydCPU drop to 0% and system-wide process spawn latency return to normal.This suggests the fix needs to cover two things: (1) the exec/validation cost per the analysis in #19885, and (2) proper process-group cleanup on app quit so
app-serverdoesn't outlive its parent as an orphan.Adding a longer-horizon data point from a different environment class: an always-on production build/CI server (M4-class Apple Silicon, 128 GB RAM, macOS 26.5.2) running containers and agent automation with a high process-spawn rate — no Codex Desktop involved. We hit the same daemon-side failure family repeatedly over Jul 16–22, which supports the view that high-spawn apps are amplifiers feeding an underlying macOS 26.x
syspolicydresource leak, rather than the leak being specific to any one app.Sanitized measurements, in case they help triage:
error: 100024) storms: 40,151 log lines in 9 min; ~116,000 lines in 2.5 min during an app-update storm; 65,700 lines in a dying instance's final 10 minutes..diagresource-exceedance report showed 34.36 GB written in 2 h, dominated by ExecPolicy SQLite WAL rewrites..ipscrash report — while their app bundles were verifiably intact (codesign --verify --strictpassed).Operational findings that may save others time:
gktool scanitself fails (GKErrorDomain, exit 70), so a no-sudo recovery path does not exist — mild-episode advice involvinggktoolstops working exactly when you need it most.launchctl kickstart -k system/com.apple.security.syspolicyis SIP-blocked (error 150), as already noted in this thread;sudo killall syspolicydis the working restart — launchd respawns it within 1–2 s and already-running processes are unaffected.launchctl limit maxfilessoft limit of 256 acts as an amplifier; raising it delays but does not prevent exhaustion — consistent with @nabong's follow-up above.Since waiting for a human with sudo was not acceptable on an unattended server, we packaged our mitigation as a small MIT-licensed root LaunchDaemon watchdog: RSS/EMFILE thresholds, evidence capture (lsof fd total + top-10 fd targets) before restarting the daemon, a 30-minute cooldown to prevent kill loops, a 6-hour heartbeat, system-binaries-only execution for root-safety, and macOS's stock bash 3.2 compatibility:
https://github.com/openjay/syspolicyd-watchdog
(The watchdog repo previously linked in this thread appears to 404 now, so hopefully this fills the gap.) To be clear: it is a workaround for the OS-side leak, not a fix for the app-side spawn behavior discussed here — both still deserve fixes.
We have filed this data with Apple via Feedback Assistant, including the
.diagreports and a sysdiagnose: FB23913699. Hoping the numbers help both the Codex team's app-side mitigations and Apple's triage.Follow-up to my earlier comment: the watchdog described there just captured its first two automated interventions — including per-fd attribution of what the leaked descriptors actually point at. Posting because automated fd-level capture data seems new to this thread.
Sanitized watchdog log excerpt (same macOS 26.5.2 production server as before; trigger thresholds: RSS > 500 MB or ≥5 EMFILE log lines per 5 min —
errors_5mcountserror: 100024log lines in the trailing 5 minutes; 30-min cooldown between restarts; elisions marked[…]):What it shows
syspolicydfds (~98.5%) pointed at a single target —/Applications/ChatGPT.app/Contents/MacOS/ChatGPT, the main executable of the ChatGPT desktop app. The remainder is the daemon's own working set (6 sockets,/dev/null,SystemPolicyConfiguration-shmfiles, ICU data). This is the same accumulation-on-the-assessed-executable pattern reported in #26117 / #26795, here reproduced independently (different app binary, no Codex CLI in the loop) and machine-timestamped. Notably, the plateau is near-identical to the live snapshots in #26117 (total_fd=2575–2576 with ~2,535 on the assessed binary), which looks like a hard internal ceiling rather than coincidence.syspolicydre-crosses the 500 MB RSS threshold within ~5 minutes of birth and reaches 2.6–3.4 GB by the 25–30 minute mark, with EMFILE bursts (errors_5m = 103,521 / 54,757 / 141,212) clustered around each kill/respawn transition. For contrast: the previous daemon instance on this same machine — after we had cut ~90% of our own spawn-rate trigger sources — survived ~40 h. With this feeder active, it lasts minutes.Practical note for anyone running the watchdog: with an active feeder the effective auto-restart cadence is ~30–35 min (30-min cooldown + 5-min poll grid). The machine stayed fully usable throughout — but to be clear, this is a treadmill, not a fix.
Full raw watchdog log available on request. We will also attach this capture to our existing Apple report FB23913699.
Consolidated results to close out today's captures — continuing my initial data and the watchdog's first automated interventions.
The watchdog auto-restarted the leaking
syspolicydfour times today (12:57 / 13:28 / 13:58 / 14:29 local; same macOS 26.5.2 production machine; ChatGPT desktop as the dominant feeder throughout). Across the successor instances we varied exactly one thing — whether/whengktool scanwas run against the feeder app after the respawn (manually at first; v1.1 now automates it):| Arm | Prewarm | Successor RSS trajectory | EMFILE (
100024) ||---|---|---|---|
| A (cycles 2–3) | none | ~375 MB at birth → 1.05 GB @ +5 min → 1.6–2.4 GB @ +15 min → 2.6–3.4 GB at kill (~30 min) | rebirth storms: 54k–141k log lines in first 5 min |
| B (cycle 4) | +90 s | 679 MB @ +5 min → 941 MB @ +15 min → plateau 991→998 MB @ +30 min | settled to 4–10 lines / 5 min |
| C (cycle 5) | +15 s | 58 MB at birth → 86 MB after 4.5 hours | zero |
Arm C is a flatline at healthy baseline: zero EMFILE lines and zero further watchdog triggers in 4.5 h and counting, under the same workload that had been forcing a kill every ~30 minutes. (Arm B's terminating kill was just our old 500 MB threshold firing on a healthy plateau, which is why v1.1 raised it. Timing note: a scan fired in the same second as the respawn reliably fails — GKErrorDomain, rc=70 — while +15 s succeeds.)
Key inference for triage: the fd/memory accumulation only accrues on the cache-miss assessment path. Once the feeder app's evaluation is warm in the fresh daemon's cache, the daemon holds baseline indefinitely under identical load — sustained assessment traffic per se is not what kills it; repeated cold evaluation is. Consistent with that, Arm B's trigger snapshot split its fds between the installed app's main executable (1,989) and a staged Sparkle update copy under the user's Caches directory (551) — a pending, not-yet-installed update (randomized path, so never cache-hittable) already feeding the accumulation, with the total still pinned at the ~2,574 fd ceiling noted earlier.
Watchdog v1.1 bakes both findings in: a post-kill prewarm hook (
PREWARM_APPSlist, ≥15 s delay, one retry) and the RSS threshold raised to 1.5 GB so the healthy post-prewarm plateau isn't misread as disease — https://github.com/openjay/syspolicyd-watchdog, commit5a53cf9. Net effect on this machine: from a ~35-minute kill treadmill to zero interventions since.This dataset (three arms + fd attribution) is also going to Apple on our existing report FB23913699 — hoping "leak accrues only on cache-miss assessments; warm cache = flat baseline" narrows the search space for both app-side mitigation and the OS fix.
Adding a current ChatGPT macOS data point that appears to match this issue exactly, with the runaway process narrowed to the bundled
cua_noderuntime.Environment
150.0.7871.124150.0.7871.12426.5(Darwin 25.5.0)Observed behavior
The agent/computer-use helper:
became stuck at approximately 140% CPU for many hours, accumulating
16h51mof CPU time. It continuously spawned short-lived child processes, including:nodenode_replnpxprocesses running from~/.npm/_npxcodex app-server --listen stdio://On macOS, each execution triggered a Gatekeeper/exec-policy assessment attributed to ChatGPT. The resulting churn exhausted
syspolicyd’s file descriptors:showed 2,540 of 2,574 descriptors open on:
Once exhausted, Gatekeeper failed system-wide:
The unified log flooded with:
The downstream impact was severe and silent: LaunchServices and
NSWorkspace.activateFileViewerSelectingopens of quarantined.dmgand.pkgfiles were dropped for every application. Even double-clicking a newly downloaded DMG no longer mounted it.CoreServicesUIAgentabandoned the open before launch without showing an error, so the visible symptom was simply that double-clicking downloads did nothing.Restarting
syspolicyddid not help while ChatGPT remained running; a fresh instance reached descriptor exhaustion again in under a minute. Force-killing the entire ChatGPT process tree drained the descriptors and restored Gatekeeper within seconds.A normal Quit was also ineffective—AppleScript
quitdid nothing, and the process tree had to be terminated withSIGKILL.Expected behavior
cua_node, app-server, Node REPL, and descendant processes.Impact
This silently disables Gatekeeper-mediated opens for unrelated applications across the machine and is extremely difficult to attribute to ChatGPT.
I can provide additional sanitized process samples and unified logs if useful.
Update: ChatGPT macOS 26.721.31836 / Framework 150.0.7871.128
A new data point from an Apple Silicon Mac Studio running macOS 26.5 (Darwin 25.5.0).
Environment
26.721.31836(build5828)150.0.7871.128codex-cli 0.146.0-alpha.3.1Observed behavior
Immediately after the app auto-updated and relaunched at 12:33 +05 on 2026-07-24:
/Applications/ChatGPT.app/Contents/Resources/codexASP: Unable to apply provenance sandboxThis is not strictly launch-only. After the app had been running for approximately 1h15m, additional bounded bursts were captured:
would not allowdenialsAt 13:59 +05, the final live sample showed:
syspolicydhealthy at approximately 0% CPU / 48 MB RSSSo on
.128this appears to have changed from a continuous runaway storm into intermittent bounded bursts, but the problematic exec/assessment path is still active and can recur after launch.Verified bundle delta from the official Sparkle artifacts (
.124→.128)0.145.0-alpha.30→0.146.0-alpha.3.1cua_noderuntime:0.0.4→0.0.5node_repl:20260713.2→20260716.124.14.0Codex Computer Use.appcopies were consolidated into one shared@oai/skyruntimeThe shipped
CODEX_SSH_SKIP_APP_SERVER_BOOTcheck is present in both.124and.128and appears unchanged. It only skips the remotenohup codex ... app-server --listen unix://bootstrap; path/version probes andcodex app-server proxystill execute.Could the team confirm whether
150.0.7871.128contains an intentional mitigation for this issue, and what AppleSystemPolicy event volume is expected during normal startup? At present, the evidence supports mitigated but not fixed.