claude-code - 💡(How to fix) Fix Claude Code Desktop crashes with exit code 3221225477 (STATUS_ACCESS_VIOLATION) on Windows ARM64 — x64 winpty-agent.exe incompatibility [2 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#52756Fetched 2026-04-24 10:40:24
View on GitHub
Comments
2
Participants
2
Timeline
6
Reactions
0
Author
Timeline (top)
labeled ×4commented ×2

Root Cause

Root Cause (Confirmed)

Fix Action

Fix / Workaround

5. CLI workaround (WORKS — confirms Electron/winpty is the issue)

Running Claude Code via ARM64 Node directly, bypassing Electron and winpty entirely:

C:\nvm4w\nodejs\node.exe "C:\Users\...\AppData\Roaming\npm\node_modules\@anthropic-ai\claude-code\cli.js"

This works without crashing, confirming the fault is in the Electron/node-pty/winpty layer.

Workaround (for other affected users)

Code Example

app-1.3883.0\claude.exex64 (0x8664)
app-1.3883.0\resources\app.asar.unpacked\node_modules\node-pty  build\Release\winpty-agent.exex64 (0x8664)

---

C:\nvm4w\nodejs\node.exe "C:\Users\...\AppData\Roaming\npm\node_modules\@anthropic-ai\claude-code\cli.js"

---

"C:\path\to\arm64\node.exe" "C:\Users\%USERNAME%\AppData\Roaming\npm\node_modules\@anthropic-ai\claude-code\cli.js"
RAW_BUFFERClick to expand / collapse

Environment

  • OS: Windows 11 Pro (Build 26200), ARM64 hardware (Samsung Galaxy Book4 Edge)
  • Claude Code Desktop version: 1.3883.0 (also tested on 1.3561.0 and 1.3109.0)
  • claude.exe architecture: x64 (confirmed via PE header inspection)
  • winpty-agent.exe architecture: x64 (confirmed via PE header inspection)
  • Hardware: ARM64 device — x64 processes run under ARM64 emulation

Bug Description

Claude Code Desktop crashes with exit code 3221225477 (0xC0000005 STATUS_ACCESS_VIOLATION) on Windows ARM64. The crash happens on session start or on the very first command issued, before any user code runs.

The crash is deterministic and reproducible across multiple fresh sessions and multiple app versions.

Root Cause (Confirmed)

Both claude.exe (the Electron app shell) and winpty-agent.exe (node-pty native module) are x64 binaries running under ARM64 emulation.

PE header inspection confirms:

app-1.3883.0\claude.exe                                              → x64 (0x8664)
app-1.3883.0\resources\app.asar.unpacked\node_modules\node-pty  build\Release\winpty-agent.exe                                     → x64 (0x8664)

When the Electron process initializes its PTY via node-pty, it spawns winpty-agent.exe as a subprocess. Under ARM64 emulation, this native x64 module triggers a STATUS_ACCESS_VIOLATION in the main Electron process, causing the entire app to exit with code 3221225477.

Hooks compound the problem: Claude Code fires SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, and Stop hooks on every interaction — each involving PTY I/O that re-triggers the winpty path.

What We Investigated and Ruled Out

We spent significant time ruling out subprocess-level causes before confirming the crash is in the Electron process itself:

1. Hook subprocess architecture (ruled out)

  • Replaced NVM-managed Node.js (x64 v22.22.2) with ARM64 Node.js v24.13.0
  • Created ARM64 python3.cmd shims pointing to Python 3.12 ARM64 native binary
  • Created node.cmd shim in NVM_HOME as PATH intercept
  • Fixed broken MCP server node path
  • Result: Crash persisted.

2. Hookify plugin (ruled out)

  • Disabled hookify@claude-plugins-official entirely
  • Result: Crash persisted.

3. External MCP server (ruled out)

  • Removed @21st-dev/magic MCP server
  • Result: Crash persisted.

4. All custom hooks disabled (ruled out)

  • Renamed hookshooks_disabled in ~/.claude/settings.json
  • Result: Crash persisted.

5. CLI workaround (WORKS — confirms Electron/winpty is the issue)

Running Claude Code via ARM64 Node directly, bypassing Electron and winpty entirely:

C:\nvm4w\nodejs\node.exe "C:\Users\...\AppData\Roaming\npm\node_modules\@anthropic-ai\claude-code\cli.js"

This works without crashing, confirming the fault is in the Electron/node-pty/winpty layer.

Crash Signature

  • Exit code: 3221225477 (decimal) = 0xC0000005 (hex) = STATUS_ACCESS_VIOLATION
  • Timing: On session start, before any user interaction, or on the first PTY write
  • Frequency: ~100% reproducible on this hardware
  • Affected versions: All tested (1.3109.0, 1.3561.0, 1.3883.0)

Requested Fix

Provide a native ARM64 Windows build of Claude Code Desktop with ARM64-compiled Electron and ARM64-native node-pty/winpty-agent.

Both Electron and node-pty have ARM64 Windows support available upstream. The fix would be to add an ARM64 Windows target to the build pipeline.

Workaround (for other affected users)

Use the Claude Code CLI directly via an ARM64 Node.js binary:

"C:\path\to\arm64\node.exe" "C:\Users\%USERNAME%\AppData\Roaming\npm\node_modules\@anthropic-ai\claude-code\cli.js"

This is functional but lacks desktop integration.

extent analysis

TL;DR

The most likely fix is to provide a native ARM64 Windows build of Claude Code Desktop with ARM64-compiled Electron and ARM64-native node-pty/winpty-agent.

Guidance

  • The crash is caused by x64 binaries (claude.exe and winpty-agent.exe) running under ARM64 emulation, leading to a STATUS_ACCESS_VIOLATION in the Electron process.
  • To fix this, an ARM64 Windows target needs to be added to the build pipeline for Claude Code Desktop, utilizing ARM64-compiled Electron and node-pty.
  • As a temporary workaround, users can run the Claude Code CLI directly via an ARM64 Node.js binary, bypassing the Electron and winpty layers.
  • Verification of the fix can be done by checking if the crash persists after updating to the new ARM64 build or using the CLI workaround.

Example

"C:\path\to\arm64\node.exe" "C:\Users\%USERNAME%\AppData\Roaming\npm\node_modules\@anthropic-ai\claude-code\cli.js"

This command runs the Claude Code CLI directly, avoiding the Electron and winpty issues.

Notes

The provided workaround lacks desktop integration but is functional. A native ARM64 build of Claude Code Desktop would be the preferred solution.

Recommendation

Apply the workaround by running the Claude Code CLI directly via an ARM64 Node.js binary until a native ARM64 Windows build of Claude Code Desktop is available. This is because the workaround is currently the only available solution that bypasses the Electron and winpty issues, although it lacks desktop integration.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

claude-code - 💡(How to fix) Fix Claude Code Desktop crashes with exit code 3221225477 (STATUS_ACCESS_VIOLATION) on Windows ARM64 — x64 winpty-agent.exe incompatibility [2 comments, 2 participants]