-
-
Notifications
You must be signed in to change notification settings - Fork 35.1k
Description
What happened?
Node.js processes crash with exit code -1073740791 (0xC0000409 / STATUS_STACK_BUFFER_OVERRUN) within 20-70 seconds of startup when running a non-trivial application (WebSocket server with HTTP, Telegram bot polling, and plugin system) on Windows 11 Insider (Canary channel).
The crash is caused by V8's Maglev JIT compiler tier. Workaround: --no-maglev flag eliminates the crash entirely.
Reproduction
Environment:
- Node.js: v25.8.0
- V8: 14.1.146.11-node.20
- OS: Windows 11 Pro for Workstations, Insider Canary build 10.0.26200.0
- Arch: x64
Steps:
- Run a long-lived Node.js application that uses
fetch(), WebSocket, and timers on Windows 11 Insider build 26200 - Process crashes with exit code
-1073740791(0xC0000409) within 20-70 seconds - No JavaScript stack trace — the crash is in native JIT-compiled code via
__fastfail
Flags tested:
| Flag | Crash? | fetch() works? |
|---|---|---|
| (none) | Yes — crashes in 20-70s | Yes |
--jitless |
No | No — undici fetch broken |
--no-maglev |
No | Yes |
--no-turbofan |
No | Yes |
--no-maglev is the minimal workaround — disabling only the Maglev tier prevents the crash while keeping TurboFan and fetch() functional.
Additional context:
- A bare Node.js HTTP server (
http.createServer) does NOT crash — the issue requires enough code to trigger Maglev optimization - Crash bypasses Windows Error Reporting (
__fastfail/ SEH) - Windows Event Viewer shows the Insider build has kernel-level instability (BlueScreen events, VIDEO_ENGINE_TIMEOUT_DETECTED), suggesting stricter CFG enforcement
- The same application runs without issues on Windows Server 2019 and stable Windows builds
Expected behavior
Node.js should not crash with STATUS_STACK_BUFFER_OVERRUN. Maglev-compiled code should respect Windows CFG/CET enforcement on Insider builds.
Workaround
Pass --no-maglev as a command-line flag (cannot be set via NODE_OPTIONS):
node --no-maglev app.js