Skip to content

[BUG]: macOS release binaries fail codesign verification #46313

Closed

Description

@GenjiruSUchiwa

Description

The macOS binaries in v1.18.25 fail codesign --verify. The embedded signature doesn't match the file contents.

$ codesign --verify --verbose=2 ./opencode
./opencode: invalid signature (code or signature have been modified)

Both opencode-darwin-arm64.zip and opencode-darwin-x64.zip are affected. I compared the sha256 of my install against the release asset and they match, so this isn't a corrupted download.

The x64 build points at the cause. It still carries Bun's own Developer ID:

Identifier=bun
TeamIdentifier=7FRXF46ZSN
flags=0x10000(runtime)
-> invalid signature

So the payload goes into the binary after Bun's signed executable is built, and nothing re-signs it afterwards. arm64 shows the same thing with the linker's adhoc signature (Identifier=a.out).

On a normal Mac this goes unnoticed. On a machine running an Endpoint Security agent (corporate EDR), macOS revalidates on every exec. Validation fails, so nothing gets cached, and the next launch re-hashes all 34,914 pages again. Timings for opencode --version, which does nothing but start the process:

as shipped   1.43  10.41   0.79  10.85   0.79  10.75  s
re-signed   12.34   0.33   0.33   0.32   0.31   0.31  s

For reference, claude --version (188 MB, Developer ID signed) takes 0.01s on the same machine.

Running codesign -s - -f ./opencode after the compile step fixes it. I re-signed my copy locally and it works normally (--version prints 1.18.25, codesign --verify passes). A real Developer ID signature plus notarization would be better, but the adhoc re-sign is enough to make the signature valid and cacheable.

Plugins

None

OpenCode version

1.18.25

Steps to reproduce

Steps to reproduce

  1. Download opencode-darwin-arm64.zip from the v1.18.25 release
  2. unzip opencode-darwin-arm64.zip
  3. codesign --verify --verbose=2 ./opencode

Screenshot and/or share link

No response

Operating System

macOS 26.5 (25F71)

Terminal

Ghostty

Activity

  1. changed the title [-]macOS release binaries fail codesign verification[/-] [+][BUG]: macOS release binaries fail codesign verification[/+] on Aug 30, 2026
  2. github-actions commented on Aug 30, 2026

    @github-actions
    Contributor

    This issue might be a duplicate of existing issues that cover the same macOS codesigning root cause. Please check:

    Those issues are closed, so if the problem has regressed in v1.18.25 this may warrant a new report, but it would be helpful to reference them and confirm whether the fixes applied there were not carried forward.

  3. nekonora commented on Aug 31, 2026

    @nekonora

    +1

    I can reproduce this with OpenCode 1.18.25 on arm64 macOS 27.0 (26A5421a). No third-party Endpoint Security/EDR is installed.

    Connecting OpenCode to Xcode 27 Beta 6’s headless MCP consistently crashes Xcode Service with SIGKILL (Code Signature Invalid) / CODESIGNING: Invalid Page. The stack shows ProcessSecurity.sha256Hash(of:) → HeadlessPermissionGate.evaluate(...), and Xcode identifies the binary as /opt/homebrew/Cellar/opencode/1.18.25/bin/opencode (in my case installed via homebrew).

    codesign --verify --strict reports: invalid signature (code or signature have been modified). This also occurs with --unsafe-always-allow-all-agents enabled.

  4. ntcho commented on Aug 31, 2026

    @ntcho

    Adding another +1 for this. On macOS, Full Disk Access permissions should survive normal OpenCode updates. A stable code-signing identity or equivalent packaging approach would prevent users from having to reauthorize FDA after each release.

  5. shawal-mba commented on Sep 15, 2026

    @shawal-mba

    Adding a nother +1 on this, the binary installed with brew, the current latest version seemed to have a codesign issue, manually fixed this issue and now I get a server error when i attempt sending a message," mesage send error check server logs" installed an alternative opencode binary that seems to work on the same machine.
    brew bin

    MD5 (/opt/homebrew/Cellar/opencode/1.18.30_1/bin/opencode) = e41813dfe83980af6abed66bfe6d4195

    curl installed bin that works

    MD5 (/Users/shawal/.opencode/bin/opencode) = 5da6bafe3fa6ecea1dace3b6073e279c
  6. shawal-mbalire commented on Sep 17, 2026

    @shawal-mbalire

    This issue was resolved for. me on the latest homebrew opencode build. Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions