Native copilot.exe binary silently exits with code 1 on Windows x64, npm-loader.js never falls back to JS implementation

Đang mở Phù hợp với người mới
#1,566 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
62/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
javascript, nodejs
Lĩnh vực
cli

Hướng nghiên cứu

Bắt đầu trong npm-loader.js tại lệnh gọi spawnSync và so sánh nhánh lỗi của nó với việc import index.js. Chạy copilot --version trên Windows x64 bằng tệp thực thi native bị lỗi, sau đó xác minh rằng implementation JavaScript chạy và trả về kết quả của nó khi tiến trình native kết thúc với mã thoát khác không.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

area:platform-windows

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

  1. Install @github/copilot via npm (npm install -g @github/copilot) or WinGet (winget install GitHub.Copilot)
  2. Run copilot --version
  3. Binary exits with code 1, no output

Expected Behavior

Either:

  • The native binary should work correctly, OR
  • npm-loader.js should fall back to the JS implementation when the native binary fails

Actual Behavior

  • copilot.exe exits with code 1, no stdout/stderr
  • npm-loader.js calls process.exit(r.status??1) after spawnSync, 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)
  • LoadLibraryEx succeeds 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
Ngôn ngữ chính
Shell
Star
11.2k
Fork
1.9k
Merge trung bình
14 giờ 16 phút
Pull request đã merge (30 ngày)
6

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của github/copilot-cli

Tất cả issue của github/copilot-cli

Issue tương tự

Thêm issue về Shell/Bash

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.