[Bug] Auto-updater fails to activate downloaded version and reverts manual symlink changes
Bug Description
Title: Native auto-updater downloads new version but fails to switch symlink (regression of #18700)
Body:
Environment: macOS arm64, native binary installation, autoUpdatesChannel: "latest", Claude Code 2.1.87
Bug: The auto-updater successfully downloads 2.1.88 to ~/.local/share/claude/versions/ but never switches the symlink at ~/.local/bin/claude. Running claude update reports "no update available" despite the new
binary already being present on disk.
Evidence:
$ ls -la ~/.local/share/claude/versions/
2.1.86 (Mar 28)
2.1.87 (Mar 31 19:47)
2.1.88 (Mar 31 06:05) ← downloaded but never activated
$ ls -la ~/.local/bin/claude
claude -> ~/.local/share/claude/versions/2.1.87 ← still old
Worse: Manually fixing the symlink with ln -sf ~/.local/share/claude/versions/2.1.88 ~/.local/bin/claude gets reverted within seconds by the running 2.1.87 process. The old binary actively overwrites the symlink
back to itself.
Note: npm installation on a separate VPS correctly shows 2.1.88. This only affects the native binary distribution.
This appears to be a regression of #18700 and #24117, both previously closed as completed/duplicate.
Environment Info
- Platform: darwin
- Terminal: iTerm.app
- Version: 2.1.87
- Feedback ID: 64e711b9-7907-4f64-a72a-aeaf18d59a32
Errors
[{"error":"Error: Request was aborted.\n at makeRequest (/$bunfs/root/src/entrypoints/cli.js:50:3940)\n at processTicksAndRejections (native:7:39)","timestamp":"2026-03-31T17:59:32.809Z"},{"error":"McpToolCallError: Tool 'firecrawl_search' execution failed: Insufficient credits to perform this request. For more credits, you can upgrade your plan at https://firecrawl.dev/pricing or try changing the request limit to a lower value.\n at Mh7 (/$bunfs/root/src/entrypoints/cli.js:1828:108339)\n at processTicksAndRejections (native:7:39)","timestamp":"2026-03-31T18:00:22.880Z"},{"error":"McpToolCallError: Tool 'firecrawl_search' execution failed: Insufficient credits to perform this request. For more credits, you can upgrade your plan at https://firecrawl.dev/pricing or try changing the request limit to a lower value.\n at Mh7 (/$bunfs/root/src/entrypoints/cli.js:1828:108339)\n at processTicksAndRejections (native:7:39)","timestamp":"2026-03-31T18:00:23.396Z"},{"error":"McpToolCallError: Tool 'firecrawl_search' execution failed: Insufficient credits to perform this request. For more credits, you can upgrade your plan at https://firecrawl.dev/pricing or try changing the request limit to a lower value.\n at Mh7 (/$bunfs/root/src/entrypoints/cli.js:1828:108339)\n at processTicksAndRejections (native:7:39)","timestamp":"2026-03-31T18:00:23.688Z"},{"error":"McpToolCallError: Tool 'firecrawl_search' execution failed: Insufficient credits to perform this request. For more credits, you can upgrade your plan at https://firecrawl.dev/pricing or try changing the request limit to a lower value.\n at Mh7 (/$bunfs/root/src/entrypoints/cli.js:1828:108339)\n at processTicksAndRejections (native:7:39)","timestamp":"2026-03-31T18:00:24.002Z"},{"error":"McpToolCallError: Failed to execute action: Unsupported action: navigate\n at Mh7 (/$bunfs/root/src/entrypoints/cli.js:1828:108339)\n at processTicksAndRejections (native:7:39)","timestamp":"2026-03-31T18:03:24.870Z"}]This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗