VS Code extension misreports normal per-turn process teardown as exit code 4294967295

Open 💬 0 comments Opened Jul 15, 2026 by sungjik25-bot

Bug report draft — VS Code extension misreports normal per-turn process teardown as a crash

Title

VS Code extension shows "Error: Claude Code process exited with code 4294967295" on nearly every turn, even though the conversation continues normally via resume

Environment

  • OS: Windows 11 Pro (10.0.26200)
  • Claude Code VS Code extension version: 2.1.208 (native-binary build 2026-07-13T20:31:41Z)
  • Entry point: claude-vscode, non-interactive SDK query mode
  • Shell: PowerShell 5.1 default, Git Bash also available
  • Subscription: Pro

Summary

The VS Code extension displays a red error banner — Error: Claude Code process exited with code 4294967295 (0xFFFFFFFF / -1) — at the end of nearly every conversational turn. Despite the alarming message, the conversation is not actually interrupted: the extension automatically relaunches the native binary with resume: <sessionId> and continues seamlessly. This makes the error appear to be a red herring / cosmetic bug rather than an actual crash, but it's confusing and worrying for end users since there's no visual distinction between "harmless per-turn teardown" and a genuine failure.

Reproduction pattern (from Claude VSCode.log)

Across a single ~20-minute session, Closing Claude was followed by exited with code 4294967295 on 7 out of 7 turn boundaries after the first cold start, regardless of what happened during the turn (file edits, grep searches, subagent calls, plain replies):

18:11:08 Launching → 18:11:17 crash (9s — cold start, only failure that blocked the session start)
18:12:12 Launching → 18:13:44 Closing → exited 4294967295 (92s)
18:14:31 Launching(resume) → 18:16:04 Closing → exited 4294967295 (93s)
18:17:35 Launching(resume) → 18:19:03 Closing → exited 4294967295 (88s)
18:19:13 Launching(resume) → 18:20:52 Closing → exited 4294967295 (99s)
18:23:59 Launching(resume) → 18:25:28 Closing → exited 4294967295 (89s)
18:27:43 Launching(resume) → 18:29:20 Closing → exited 4294967295 (97s)

Each Launching after the first used resume: <sessionId>, and the conversation continued without any loss of context or state.

What we ruled out

  • Antivirus/Windows Defender interference: added .vscode\extensions\ to the Defender exclusion list; the pattern persisted immediately afterward with 100% reproducibility, which rules out a scan-related one-off delay.
  • Network flakiness: a prior investigation (previous day, same machine) attributed a similar-looking one-off crash to a network timeout during idle background polling. That doesn't explain a deterministic 7/7 reproduction rate across turns with completely different workloads (file edits vs. searches vs. plain text replies) in the same session.

Hypothesis

The extension appears to spawn a new claude.exe process per user turn (non-interactive SDK mode) and terminates it when the turn completes, passing resume: <sessionId> to the next spawn. On Windows, this termination is consistently reported with exit code 4294967295 (the value Node.js substitutes when a child process is killed by signal rather than exiting normally), and the extension surfaces that as a hard error banner even though the termination was intentional and the session recovers cleanly. If so, this is a display/severity bug in how the extension interprets its own subprocess teardown on Windows — not an actual instability.

Expected behavior

Either:

  1. The extension does not treat its own intentional per-turn subprocess termination as an error (no banner shown when a subsequent resume launch immediately succeeds), or
  2. If exit code 4294967295 can also indicate a genuine failure, the extension should distinguish "terminated by us, recovered via resume" from "unexpected crash" and only surface the banner for the latter.

Attachments to include when filing

  • Relevant excerpt of Claude VSCode.log (the Launching Claude / Closing Claude / exited with code lines above)
  • This environment summary

View original on GitHub ↗