-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Open
Labels
Description
Description
The native copilot.exe binary (both WinGet v0.0.410 and npm v0.0.412) silently exits with code 1 on Windows 11 x64, producing no stdout or stderr output. This makes the Copilot CLI completely unusable.
The npm-loader.js entrypoint unconditionally exits with the native binary's exit code (process.exit(r.status??1)), which prevents the JavaScript fallback (index.js) from ever being reached when the native binary fails.
Steps to Reproduce
- Install
@github/copilotvia npm (npm install -g @github/copilot) or WinGet (winget install GitHub.Copilot) - Run
copilot --version - Binary exits with code 1, no output
Expected Behavior
Either:
- The native binary should work correctly, OR
npm-loader.jsshould fall back to the JS implementation when the native binary fails
Actual Behavior
copilot.exeexits with code 1, no stdout/stderrnpm-loader.jscallsprocess.exit(r.status??1)afterspawnSync, so it exits with 1 without trying the JS fallback- The JS implementation (
node index.js) works perfectly
Workaround
In npm-loader.js, change:
process.exit(r.status??1)
to:
if(r.status===0)process.exit(0)
This allows the JS fallback via import("./index.js") to run when the native binary fails.
Environment
- OS: Windows 11 Enterprise 25H2 (Build 26200)
- Architecture: x64 (AMD64)
- Node.js: v25.6.1
- npm: 11.9.0
- Copilot CLI (WinGet): v0.0.410
- Copilot CLI (npm): 0.0.412
- gh CLI: 2.86.0
Additional Context
- The native binary is a valid signed PE x64 executable (signature verified)
LoadLibraryExsucceeds on the binary (no missing DLL dependencies)- No Windows Defender blocks, no AppLocker policies, no Zone.Identifier ADS
- No crash dumps or WER reports generated
- The binary produces zero output to both stdout and stderr
- Running from any directory, any terminal (PowerShell, cmd), with or without admin privileges — same result
Reactions are currently unavailable