macOS Sequoia 15.7.1 quarantine kills codex binary until xattr is cleared
Resolved 💬 21 comments Opened Oct 26, 2025 by JeffreyArt1 Closed Dec 18, 2025
💡 Likely answer: A maintainer (bolinfest, collaborator)
responded on this thread — see the highlighted reply below.
What version of Codex is running?
v0.50.0
What subscription do you have?
Plus
Which model were you using?
_No response_
What platform is your computer?
Darwin 24.6.0 arm64 arm
What issue are you seeing?
Codex cant open and gets closed with a notice that the app is damaged.
Upon investigation i found gatekeeper put it in quarantine.
$> codex
[1] 35571 killed codex
$> which codex
/opt/homebrew/bin/codex
$> xattr /opt/homebrew/bin/codex
com.apple.metadata:kMDItemAlternateNames
com.apple.provenance
com.apple.quarantine
What steps can reproduce the bug?
Uploaded thread: 019a22a3-65e6-7521-b77a-4b6eb7855243
What is the expected behavior?
_No response_
Additional information
_No response_
21 Comments
as a workaround i ran
to fix the issue.
@JeffreyArt1 so you installed Codex via
brew(as opposed to downloading it from GitHub Releases or some other mechanishm?)Yeah, i had it installed. The issue was with this particular version. I upgraded from a previous version using
brew upgrade codexAdding to this. I tried installing via both brew and npm. macOS Tahoe 26.0.1 quarantined which I believe also triggered a block by Jamf Protect (in corporate environment). I was not able to use the suggested xattr solution above. Workaround for me was to uninstall and go back to the last known working version by running "npm install -g @openai/codex@0.46.0".
Can you try with the latest version?
v0.55.0@JeffreyArt1 I experience the same with v0.55.0. Note I worked with a different coding agent to troubleshoot why 0.46.0 works but not 0.55.0 and got the following:
Version 0.46.0 (working):
Version 0.55.0 (blocked):
OpenAI improved their security by adding proper code signing to 0.55.0, but forgot to notarize it. Since it's signed with a Developer ID but lacks notarization, macOS blocks it more aggressively than the unsigned 0.46.0 version.
That makes a lot of sense! I can see that they are working towards fixing it(?) thanks for the info.
Thanks for flagging - just checked and we added notarization step but it seems like we did not staple the notarization ticket to the binary itself which can cause failed check in certain situations. Sorry about the inconvenience and I will address this.
Hi @JeffreyArt1!
We just spent some time looking into this and we can't find anything wrong with the binaries we're distributing via homebrew. They are correctly notarized. They are not stapled because plain binaries cannot be stapled, only packages such as dmg of app bundles can be. But stapling just allows macOS to skip "phoning home" to Apple to verify the notarization, so it's totally optional and given that you can't staple a binary, expected.
Our hypothesis is that you may have an MDM profile on your machine that's enabling some stricter macOS Gatekeeper rules that lead to the binary being rejected.
If you wouldn't mind, would you be willing to run a few commands on your terminal so we can gather some more info and see if we can find the root-cause and a workaround?
Besides that, if you run this in a terminal tab right before you run
codexin another to reproduce the crash ([1] 35571 killed codex), we'll be able to see exactly the reason why macOS is rejecting it:After you repro it, do
ctrl+con thatlog stream, and see if you find something in the logs like:Hopefully we can get this fixed for you 🙏 thank you for your patience!
@JaviSoto It looks like macOS gatekeeper is no longer quarantining codex cli, however Jamf Protect is still blocking it (for me and other people in my org). I can provide outputs from the commands, but note the log stream command returns nothing because it is now just Jamf Protect removing codex and killing the process. Here are the outputs:
Gotcha thank you that's very helpful!!!
You might be able to get some info by running
log stream --style syslog --predicate 'subsystem CONTAINS "jamf" OR process CONTAINS "jamf"' --info, but I think you may need to ask your IT department about this, as it seems it's some policy they have enabled on your laptop that's causing this. If it's something we're doing that's tripping Jamf Protect for you folks, let us know cause we'd love to make it better!Hi @JaviSoto!
I ended up installing v0.51.0, and the issues went away. I periodically upgrade the package via
brewand haven’t seen the issue since.I’m not sure if that’s enough to close this issue since it’s working fine for me now, but I noticed a few other comments mentioning similar problems.
Thanks for confirming the fix. I'm going to close the issue under the assumption that the problem has been addressed. If anyone sees the problem again with the latest version of codex, let us know.
@etraut-openai and @JaviSoto I tried installing latest codex version to see if anything has changed. I am back to getting codex blocked by macOS gatekeeper (in addition to Jamf)
<img width="255" height="294" alt="Image" src="https://github.com/user-attachments/assets/efabb768-4a49-4fe5-9d18-4d312bc25d8e" />
I suspect I stopped getting blocked by gatekeeper because I removed the quarantine attribute in the prior version (following advice above), but installing the latest version means quarantine attribute is present again:
Here are the diagnostics output, I think most pertinent is that spctl --assess now says that source=Unnotarized Developer ID.:
That is entirely expected for any binary you download from the internet. I see that here as well, but I'm able to run codex because the first time macOS tries to run a quarantined app it checks the notarization.
You ran
spctl --assess --type execute -vv $(which codex)but I gave you the wrong command, the right one for bare executables would be:Can you share what that outputs? 🙏
I ran that on the last 5 releases of codex and this is what I see:
@JaviSoto This is what I see
Thank you for bearing with me 🙏 hopefully we can figure this out. That is very strange. Can you try these?
@JaviSoto I believe I identified the culprit - the call to notary.apple.com. TLS Inspection breaks the call (normally not an issue but looks like notary.apple.com is more sensitive to this). If true resolution options are:
Evidence:
Ah yeah, MiTM-ing Apple's requests is gonna be an issue :D I'm surprised it doesn't cause problems with more programs!
We will look into the feasibility of distributing a stapled package. Thanks a lot for working on this with me though so we could get to the root-cause! That was super helpful 🙏
We added stapled dmg target in this PR: #8207. Hope this helps!
Would be amazing if the homebrew cask was updated to use the stapled dmg then so updates don't break the binary constantly: https://github.com/Homebrew/homebrew-cask/blob/main/Casks/c/codex.rb