anthropics / anthropics/claude-code

macOS: claude:// gets registered to the Electron helper bundle, login fails with Finder error -600

Open
#81,322 0 comments 0 reactions 0 assignees View on GitHub
area:desktop
Dominant language
Python
Stars
145k
Forks
23.1k
PR merge metrics
PR metrics pending

Description

Claude Desktop 1.24012.9, macOS 26 (Darwin 25.3.0).

After the browser login flow, macOS shows a Finder dialog "Unable to open the application. -600" and the app never receives the callback.

Cause: the `claude://` URL scheme handler in LaunchServices is set to `com.anthropic.claudefordesktop.helper` instead of `com.anthropic.claudefordesktop`. All four helper bundles inside `Contents/Frameworks` share that same identifier and none of them is launchable, so `LSOpenURLsWithRole` fails with `procNotFound` (-600).

It looks like `app.setAsDefaultProtocolClient` is being called from a helper process: `NSWorkspace.urlForApplication(toOpen:)` resolves `claude://` to `Claude Helper (Plugin).app`. The registration is rewritten by the app itself, observed 9 seconds after launch and again within minutes while the app was already running, so fixing the handler manually does not stick.

Workaround for users: the "Sign in with code" link on the login page avoids the `claude://` callback entirely.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by tracing the app.setAsDefaultProtocolClient call and which Electron helper process performs it, then inspect how the Claude Desktop bundles register with LaunchServices. Reproduce the login flow and verify that claude:// resolves to the main com.anthropic.claudefordesktop bundle and the callback reaches the app without Finder error -600.

Written by the indexing model from the issue text.

Assessment

Tech stack
electron, macos
Domain
authentication, desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.