[BUG] Extension host hard crash (STATUS_BREAKPOINT -2147483645) on Windows — repeated crash-restart loop

Resolved 💬 3 comments Opened Feb 11, 2026 by LouisWawrzesta Closed Feb 15, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

The Claude Code VSCode extension host enters a crash-restart loop, crashing every 25-90 seconds. VSCode isolates it to its own extension host, but crashes continue. One crash was a hard native crash (not a graceful exit):

  • Exit code: -2147483645 (0x80000003 = Windows STATUS_BREAKPOINT)
  • main.log: [UtilityProcess id: 39, type: extensionHost, pid: 3464]: crashed with code -2147483645 and reason 'crashed'
  • exthost.log: Error: write after end (Node.js stream write to closed stream)
  • renderer.log: Every crash lists only Anthropic.claude-code as running extension

Crash timeline in a single session (2026-02-11):

| Time | Survived | Notes |
|------|----------|-------|
| 13:35 | 22 sec | Shared host crash |
| 13:56 | 91 sec | Shared host crash |
| 14:02 | 70 sec | Claude-only host |
| 14:05 | 57 sec | Claude-only host |
| 14:07 | 77 sec | Claude-only host |
| 14:14 | 21 min | Stabilized briefly |
| 14:36 | 60 min | After reducing config size |
| 15:37 | 25 sec | HARD CRASH (code -2147483645) |

Reducing settings.local.json from 134→34 permission entries and CLAUDE.md from 1105→327 lines extended survival from ~60s to ~60min, suggesting config/context payload size is a contributing factor

What Should Happen?

The extension host should remain stable without crashing. Large permission lists and CLAUDE.md files should not cause native crashes

Error Messages/Logs

# main.log
Extension host with pid 3464 exited with code: 18446744071562068000, signal: unknown.
[error] [UtilityProcess id: 39, type: extensionHost, pid: 3464]: crashed with code -2147483645 and reason 'crashed'

# exthost.log
2026-02-11 14:14:49.232 [error] Error: write after end

# renderer.log (repeated pattern)
Extension host (LocalProcess pid: 6608) terminated unexpectedly. The following extensions were running: Anthropic.claude-code
Extension host (LocalProcess pid: 15440) terminated unexpectedly. The following extensions were running: Anthropic.claude-code
Extension host (LocalProcess pid: 24164) terminated unexpectedly. The following extensions were running: Anthropic.claude-code
Extension host (LocalProcess pid: 3464) terminated unexpectedly. The following extensions were running: Anthropic.claude-code

# Claude VSCode.log
2026-02-11T15:22:19.239Z [ERROR] API error (attempt 5/11): 529 overloaded_error
(many 529 retries piling up during crashes)

Steps to Reproduce

  1. Open a large Laravel monolith workspace in VSCode with Claude Code extension
  2. Have a large CLAUDE.md file (~1000+ lines) in the project root
  3. Accumulate 100+ permission entries in .claude/settings.local.json (happens naturally over many sessions — one-off git commands, commit messages, etc. all get saved as individual permission entries)
  4. Start a conversation using Opus model with multiple tool calls
  5. Extension host crashes within 25-90 seconds, enters restart loop
  6. After reducing settings.local.json to ~34 wildcard entries and CLAUDE.md to ~327 lines, survival extends to ~60 minutes before next crash
  7. Hard native crash (code -2147483645) still occurs eventually

Claude Model

Opus

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.1.39

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

VS Code integrated terminal

Additional Information

On startup, the extension loads permission rules from 3 config files (user + project + local). Before cleanup this totalled 180 rules, many containing full git commit messages as permission strings (500+ chars each). The accumulated payload appears to contribute to instability.

The permission accumulation is itself a UX issue — every approved one-off command (e.g., a full git commit -m "..." with heredoc) gets permanently saved as an exact-match permission entry, causing unbounded growth of settings.local.json over time. Consider: (1) not persisting one-off commands as permissions, or (2) auto-consolidating specific entries into wildcard patterns.

Extension version: anthropic.claude-code-2.1.39-win32-x64
Binary: claude.exe (native binary bundled with extension)

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗