[BUG] Windows Desktop (MSIX): spawn EFTYPE at session start — fails before any syscall on a verified-clean environment
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?
Claude Code sessions fail immediately in the Windows desktop app (MSIX). The Code tab shows "Claude Code couldn't start / spawn EFTYPE" the instant Enter is pressed, before any session UI renders. Chat works normally; only local Code sessions fail.
Three identical failures occur per attempt, from getAgents, getSupportedCommands, and getCommands — all via zQ.initialize -> spawnLocalProcess.
The thrown error contains no path and no spawnargs, so neither the UI nor the logs reveal what was being launched.
Key evidence:
- No syscall ever fails. Process Monitor during the failure shows zero Process Create attempts and zero failed file/registry operations. The spawn target is rejected before CreateProcessW is reached.
- The environment spawns correctly. A Node script replicating the app's spawn conditions on the same machine, PATH, and cwd succeeded on 14/14 real spawns (cmd, powershell, git, bash, claude.exe by path and by name, shell:true, project cwd, temp cwd, windowsHide, detached). Controls: an empty command gives ERR_INVALID_ARG_VALUE and spawning a directory gives ENOENT — neither produces EFTYPE on this machine.
- The MSIX package ships no Claude Code CLI. It contains only app\claude.exe (232,851,792 bytes, Electron shell), chrome-native-host.exe (1,018,704), and cowork-svc.exe (12,683,088). No CLI is present and none is ever downloaded into the container.
Environment verified clean: container fully initialised, mcpServers {} and claude mcp list empty, no CLAUDE_* variables set, TEMP/TMP at Windows defaults, git and bash both on PATH, CLI 2.1.218 installed separately and working perfectly in terminal. Reproduces within seconds of a fresh reboot.
Secondary bug: before repairing ACLs, %LOCALAPPDATA%\Packages lacked an ALL APPLICATION PACKAGES ACE. The container was created empty, sign-in failed silently (browser auth succeeded, app never received the callback), and no error surfaced anywhere. Granting Modify to *S-1-15-2-1 fixed both immediately. A startup writability check would surface this in seconds. This did NOT fix the EFTYPE.
What Should Happen?
The session starts. If a required binary is missing, the app downloads it or reports the missing path. It should not attempt to spawn an unresolved target, and the error should include path and spawnargs.
Error Messages/Logs
error: Error: spawn EFTYPE
at ChildProcess.spawn (node:internal/child_process:441:11)
at Object.spawn (node:child_process:810:9)
at zQ.spawnLocalProcess (...\app.asar\.vite\build\index.chunk-DwT2CckN.js:100:2244)
at zQ.initialize (...\index.chunk-DwT2CckN.js:100:7279)
at new zQ (...\index.chunk-DwT2CckN.js:100:1534)
at sg (...\index.chunk-DwT2CckN.js:128:142610)
at Module.ule [as query] (...\index.chunk-DwT2CckN.js:129:501)
at j.withTemporaryQuery (...\index.chunk-CnvIbZyw.js:372:18207)
at async Object.getSupportedCommands (...\index.chunk-CjZDLvU_.js:16:21173)
at async Session.<anonymous> (node:electron/js2c/browser_init:2:119861) {
errno: -4028,
code: 'EFTYPE',
syscall: 'spawn'
}
Identical failures also thrown from getAgents and
Steps to Reproduce
- Install Claude desktop on Windows from claude.ai/download (delivers MSIX)
- Open the Code tab and start a local session in any folder
- Press Enter — "spawn EFTYPE" appears immediately, before any session UI renders
Claude Model
None
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
2.1.218, desktop package is Claude_1.24012.1.0_x64__pzs8sxrjxfjjc
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
PowerShell
Additional Information
Summary
The desktop app's Code tab fails to launch Claude Code with spawn EFTYPE.
This is a regression — it worked on this machine previously. The CLI (v2.1.218)
launches and runs normally, same machine, same user.
Background
This worked before the ACL damage.** The Code tab launched normally on this
machine until the profile permissions were broken. Every other symptom of that
damage has been repaired and verified; the Code tab is the only thing that did
not come back.
- Profile root ACLs restored (Chrome's "Profile error occurred" dialog is gone)
- SYSTEM entry restored
ALL APPLICATION PACKAGESset to Modify on the Packages tree- App container now builds successfully
- Desktop sign-in works
- Profile registry clean, no leftover TEMP profile in use
CLAUDE_CONFIG_DIRredirected to a folder underAppData\Local
Everything else recovered. The Code tab did not.
Ruled out (with evidence)
- MCP configuration at all scopes — removed
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗