[BUG] [preview_start] spawn disclaimer ENOENT on macOS 26 (Sequoia) with Electron 40

Resolved 💬 2 comments Opened Mar 17, 2026 by vincentalthenor Closed Apr 16, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Bug report

Description

preview_start fails with spawn /Applications/Claude.app/Contents/Helpers/disclaimer ENOENT on macOS 26.3.1 (Darwin 25.3.0) with Claude Desktop 1.1.6041 (Electron 40.4.1).

The binary exists at the expected path, is properly signed, and executes correctly from the terminal and from Node.js spawnSync outside the Electron context — but the Electron main process cannot spawn it.

Environment

  • macOS: 26.3.1 (Darwin 25.3.0, arm64)
  • Claude Desktop: 1.1.6041
  • Electron: 40.4.1
  • Claude Code CLI: 2.1.77 (npm)

Steps to reproduce

  1. Open Claude Code session in Claude Desktop on macOS 26
  2. Have a valid .claude/launch.json with a Python/Node server config
  3. Call preview_start with a valid server name
  4. → Error: Failed to start preview server: spawn /Applications/Claude.app/Contents/Helpers/disclaimer ENOENT

What I verified

  • Binary exists: ✅ /Applications/Claude.app/Contents/Helpers/disclaimer
  • Binary is signed: ✅ Authority = Developer ID Application: Anthropic PBC (Q6L2SF6YDW)
  • Binary runs from terminal: ✅ prints Usage: disclaimer <command> [args...]
  • Binary runs from Node.js spawnSync: ✅ status 0, no error
  • No quarantine flag on binary: ✅ only com.apple.provenance
  • App Sandbox: ❌ not enabled (no com.apple.security.app-sandbox entitlement)
  • Tried: absolute path in runtimeExecutable, symlink in /usr/local/bin → same error

Likely cause

Regression in Electron 40 process spawning on macOS 26 (pre-release kernel). The xlt() function in the app correctly resolves path.join(dirname(resourcesPath), "Helpers", "disclaimer"), but child_process.spawn fails at the OS level within the Electron renderer/main process context on this OS version.

Workaround

None currently. Verification is done via direct curl to the running server.

What Should Happen?

preview_start should successfully spawn the dev server process and return a server ID, allowing subsequent preview tools (preview_screenshot, preview_snapshot, etc.) to work as intended.

Expected behavior:

  1. preview_start("evora-app") launches /usr/local/bin/python3 /path/to/app.py (wrapped via disclaimer)
  2. Returns a serverId
  3. preview_screenshot(serverId) captures the running app at localhost:5001

This works correctly on macOS 15 (Sequoia stable). The regression appears on macOS 26 (Darwin 25.x, developer beta) with Claude Desktop 1.1.6041 / Electron 40.

Error Messages/Logs

Steps to Reproduce

Steps to Reproduce:

  1. Install Claude Desktop (tested with Electron 40.4.1) on macOS 26 (Darwin 25.3.0 — pre-release)
  2. Open a project in Claude Code with a valid .claude/launch.json:

``json
{
"version": "0.0.1",
"configurations": [
{
"name": "my-app",
"runtimeExecutable": "/usr/local/bin/python3",
"runtimeArgs": ["app.py"],
"port": 5001
}
]
}
``

  1. In a Claude Code session, call preview_start (or trigger any tool that spawns a child process via the disclaimer helper)
  2. Observe the error:

``
spawn /Applications/Claude.app/Contents/Helpers/disclaimer ENOENT
``

Additional notes for the repro:

  • The binary exists at the expected path and is executable:

``
$ ls -la /Applications/Claude.app/Contents/Helpers/disclaimer
-rwxr-xr-x Anthropic PBC (code-signed)
$ /Applications/Claude.app/Contents/Helpers/disclaimer echo hello
hello ← runs fine from terminal
``

  • The error only occurs when spawned from within the Electron renderer/main process context
  • Does not reproduce on macOS 15 (Sequoia stable) with the same Claude Desktop version

Claude Model

None

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

2.1.77 (Claude Code)

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

_No response_

View original on GitHub ↗

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