[BUG] Desktop WSL session: NO_INSTALL_RESULT because installer writes remote server binary as root without exec bit
Bug
Starting the first WSL session from Claude Code Desktop fails with:
Couldn't install the Claude CLI on the remote: the installer produced no result [NO_INSTALL_RESULT]
Root cause (verified on the affected machine): the remote-server installer writes the binary into the user's home directory as root and without the executable bit, then (presumably) verifies it as the normal distro user, which can neither execute nor chmod a root-owned file — so the install is reported as having produced no result even though the download itself succeeded and the binary is intact.
State left behind by the failed install
$ ls -laR ~/.claude/remote/srv/
/home/<user>/.claude/remote/srv/5db5e4a12f88487e47c2c48259b69a2d630bb3f7:
total 6200
drwx------ 2 <user> <user> 4096 Jul 15 12:03 .
drwxr-xr-x 3 <user> <user> 4096 Jul 15 12:00 ..
-rw-r--r-- 1 root root 6336664 Jul 15 12:03 server <-- root-owned, not executable
Everything else under ~/.claude/remote/ is owned by the normal distro user; only the server file itself is root:root with mode 644.
The binary is complete and valid — after fixing ownership/permissions it runs fine:
$ file server
server: ELF 64-bit LSB executable, x86-64, statically linked, Go BuildID=..., stripped
$ ./server --version
claude-ssh 5db5e4a12f88487e47c2c48259b69a2d630bb3f7 (built 2026-07-06T20:46:38Z)
(The hash matches the srv/ directory name, so it's the exact version the app intended to install.)
Workaround
# from PowerShell
wsl -d Ubuntu -u root -- bash -c 'chown -R <user>:<user> /home/<user>/.claude/remote && chmod u+x /home/<user>/.claude/remote/srv/*/server'
then retry creating the WSL session. (Presumably wsl --shutdown + rm -rf ~/.claude/remote + retry would also work, at the cost of re-downloading — untested since the chown fix sufficed.)
Suggested fixes
- Run the installer step as the same user the server will run/verify as, or
chown/chmod +xafter writing. - Have the verification step surface the actual failure (
EACCES/permission denied on exec) instead of the genericNO_INSTALL_RESULT, which points users at downloads/networking rather than permissions.
Environment
- Windows 11 Pro 10.0.26200, WSL 2, Ubuntu 26.04 LTS (fresh
wsl --install, default user created during distro setup) - First-ever WSL session attempt for this distro from Claude Code Desktop; workspace is a repo inside the distro filesystem (
/home/<user>/path/to/workspace/repo) - Network to downloads.claude.ai unblocked; ~950 GB free disk
3 Comments
Reproduced today (2026-08-20) on Claude Desktop 1.32885.1.0, remote target is a WSL Ubuntu distro (same failure also seen on this machine on 1.30096.0.0 and 1.28929.0.0, so this has persisted across at least three releases/~5 weeks).
Confirms the exact root cause above:
~/.claude/remote/srv/5db5e4a12f88487e47c2c48259b69a2d630bb3f7/serverlands asroot:root, mode644— same binary hash as reported here.ssh.logshowsserver --install produced no result; stderr: sh: 1: .../server: Permission denied, repeating on everywarm_up/start_sessiontrigger (10+ times per active session).Ruled out local misconfiguration as a contributing factor:
/etc/wsl.confand/etc/wsl-distribution.confboth correctly set the default WSL user to the normal (non-root) account, so the root ownership is coming from the deploy step itself, not from a misconfigured distro default user.Tested the "clear the cache" workaround (
rm -rf ~/.claude/remote/srv): the very next connection attempt reproduces an identical root-owned, non-executable file. So this isn't a one-off corrupted download — it's systematic in how the install step writes the file, and no client-side workaround holds up across retries.Given this fully blocks Cowork/remote-session and Code-tab-over-WSL usage, and has an unambiguous repro + root cause already documented, requesting this get unstaled and prioritized.
This is a blocker for all my students running Claude Desktop on Windows where we need to use WSL as the execution engine.
Still reproduces on Desktop 1.37937.0.0 / WSL 2.7.12.0 / Ubuntu 26.04, with a newer binary than any reported here:
7d193f89fc02cf1035a391245312e34ad419f63e(built 2026-08-25), againroot:root 0644.It seems anything Windows writes into the WSL filesystem over the
\\wsl.localhostshare lands root-owned, with no Claude Code involved:$ powershell.exe -NoProfile -Command "Set-Content -Path '\\wsl.localhost\Ubuntu\home\<user>\ownertest.txt' -Value 'hello'"
$ stat -c '%U:%G %a' ~/ownertest.txt
root:root 644
That share's file server runs as root and ignores
[user] default=. Pushing the binary over the WSL command channel (wsl.exe -d <distro> -- ..., which runs as the default user) would avoid it, as would achown/chmod +xafter the write.Also worth noting
chown -Rworkaround works, but the next app update pushes a new hash directory over the same share and it breaks again identically.