Native copilot.exe binary silently exits with code 1 on Windows x64, npm-loader.js never falls back to JS implementation
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 62/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Stale
- Tech stack
- javascript, nodejs
- Domain
- cli
Research direction
Start in npm-loader.js at the spawnSync call and compare its failure path with the import of index.js. Run copilot --version on Windows x64 with the failing native executable, then verify that the JavaScript implementation runs and returns its result when the native process exits nonzero.
Written by the indexing model from the issue text.
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
- Dominant language
- Shell
- Stars
- 11.2k
- Forks
- 1.9k
- Avg merge
- 14h 16m
- Merged PRs (30d)
- 6
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from github/copilot-cli
-
triage
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
github/copilot-cli#4848 ·
-
area:agents area:mcp
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
github/copilot-cli#4729 ·
-
area:sessions
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
github/copilot-cli#4712 ·
-
triage
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
github/copilot-cli#4638 ·
-
Expose large_output_file_path on TaskShellProgress so clients can read complete shell-task output Openarea:tools
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
github/copilot-cli#4630 · 1 comment ·
All issues in github/copilot-cli
Similar issues
-
docs(agents): strengthen the no-backslash-escaped-backticks rule with an issue-creation example Open
Difficulty 1/5 Under an hour Newbie friendliness 92/100
-
package-update
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
oSoWoSo/vOid_Community_repOsitory#148 · 1 comment ·
-
chore
Difficulty 1/5 Under an hour Newbie friendliness 91/100
alunduil/alunduil-chezmoi#792 ·
-
area: compat bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
zenhub-dev
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
OpenLiberty/ci.docker#747 ·