VS Code extension crash-loops after VS Code update (chatParticipant manifest error → renderer process dies repeatedly)

Status Open
Reported on v2.1.212
Maintainer reply None cached
Activity 0 comments · opened Jul 17, 2026
Note: This report was drafted and filed by a Claude Code agent (running in an interactive session, with the reporter's explicit review and approval before submission), based on log analysis of a crash observed in the reporter's environment. It was not written directly by the human reporter.

Summary

After updating VS Code, the Claude Code extension enters a continuous crash loop: the extension host repeatedly fails to activate the extension's chat participant, the renderer process exits ("clean-exit"), and the extension host restarts — every 15-60 seconds, indefinitely.

Environment

  • Claude Code VS Code extension: anthropic.claude-code@2.1.212
  • VS Code: 1.129.0 (commit 125df4672b8a6a34975303c6b0baa124e560a4f7), Linux x64
  • OS: Linux 7.0.0-28-generic (Ubuntu-based)
  • vscjava.vscode-gradle@3.18.0 ("Gradle for Java") — confirmed via Extension Bisect as the culprit extension (see update below)
  • Also installed in the workspace (not implicated): redhat.java@1.55.0, vscjava.vscode-java-pack@0.31.1, vscjava.vscode-java-dependency@0.27.6, ms-python.python

Observed behavior

Started immediately after updating VS Code (previously stable). The extension host log (exthost.log) shows this repeating pattern every activation cycle:

[error] Error: chatParticipant must be declared in package.json: claude-code
...
[error] Error: Channel has been closed
	at dispose (.../anthropic.claude-code-2.1.212-linux-x64/extension.js:907:1725)
	at Object.dispose (.../anthropic.claude-code-2.1.212-linux-x64/extension.js:907:3592)
[info] ExtensionService#_doActivateExtension Anthropic.claude-code, startup: false, activationEvent: 'onView:claudeVSCodeSidebarSecondary'

main.log shows the extension host and renderer repeatedly cycling, continuously, for at least 6+ minutes in one sample session:

2026-07-17 08:04:01.103 [info] Extension host with pid 21123 exited with code: 0, signal: unknown.
2026-07-17 08:04:15.315 [info] Extension host with pid 22590 exited with code: 0, signal: unknown.
2026-07-17 08:04:29.796 [info] Extension host with pid 24193 exited with code: 0, signal: unknown.
2026-07-17 08:05:31.051 [info] Extension host with pid 25865 exited with code: 0, signal: unknown.
2026-07-17 08:06:15.711 [info] Extension host with pid 27238 exited with code: 0, signal: unknown.
2026-07-17 08:06:49.401 [info] Extension host with pid 27519 exited with code: 0, signal: unknown.
2026-07-17 08:07:21.494 [info] Extension host with pid 28273 exited with code: 0, signal: unknown.
2026-07-17 08:07:39.632 [info] Extension host with pid 29657 exited with code: 0, signal: unknown.
2026-07-17 08:07:45.403 [info] Extension host with pid 31398 exited with code: 0, signal: unknown.
2026-07-17 08:07:46.956 [info] Extension host with pid 31881 exited with code: 0, signal: unknown.
2026-07-17 08:08:34.443 [info] Extension host with pid 31934 exited with code: 0, signal: unknown.
2026-07-17 08:08:46.309 [info] Extension host with pid 33181 exited with code: 0, signal: unknown.
2026-07-17 08:08:52.470 [info] Extension host with pid 34544 exited with code: 0, signal: unknown.
2026-07-17 08:08:53.789 [info] Extension host with pid 35134 exited with code: 0, signal: unknown.
2026-07-17 08:08:53.937 [error] CodeWindow: renderer process gone (reason: clean-exit, code: <unknown>)
2026-07-17 08:08:54.345 [info] Extension host with pid 35186 exited with code: 0, signal: unknown.
2026-07-17 08:09:04.311 [info] Extension host with pid 35383 exited with code: 0, signal: unknown.
2026-07-17 08:09:04.312 [error] CodeWindow: renderer process gone (reason: clean-exit, code: <unknown>)
2026-07-17 08:09:15.204 [info] Extension host with pid 35454 exited with code: 0, signal: unknown.
2026-07-17 08:09:38.852 [info] Extension host with pid 35534 exited with code: 0, signal: unknown.
2026-07-17 08:09:38.853 [error] CodeWindow: renderer process gone (reason: clean-exit, code: <unknown>)
2026-07-17 08:10:30.256 [info] Extension host with pid 35600 exited with code: 0, signal: unknown.

Secondary errors during each teardown: TypeError: Cannot read properties of undefined (reading 'subscriptions'), Error: database is not open, and one Error: write after end originating in vscjava.vscode-gradle-3.18.0/dist/index.js. Initially assumed to be collateral rather than causal — see update below.

Update: the reporter ran VS Code's built-in Extension Bisect (Command Palette → "Developer: Start Extension Bisect"), which specifically flagged vscjava.vscode-gradle ("Gradle for Java") as the culprit — output similar to Bisecting extensions: bad extension found: vscjava.vscode-gradle. Disabling that extension alone (workspace-only) resolves the crash loop. So the Gradle extension is confirmed as the trigger, not merely collateral damage.

Suspected root cause

Confirmed via Extension Bisect: enabling vscjava.vscode-gradle alongside the Claude Code extension triggers the crash loop; disabling it resolves it. The chatParticipant must be declared in package.json: claude-code error and the Gradle write after end error both appear on every cycle, but the bisect result indicates Gradle's activation (not a Claude Code manifest issue in isolation) is the actual trigger — possibly resource contention or a shared-state issue between the two extensions in the same extension host process, which then manifests as the chatParticipant activation failure and renderer crash.

Steps to reproduce

  1. Install anthropic.claude-code@2.1.212 and vscjava.vscode-gradle@3.18.0 together on VS Code 1.129.0 (Linux).
  2. Open a workspace containing Gradle build files (e.g., a Flutter project's android/ folder, which auto-activates the Gradle extension).
  3. Extension host repeatedly fails to activate the chat participant; renderer process exits and restarts continuously.
  4. Confirmed via Extension Bisect: disabling vscjava.vscode-gradle stops the loop; re-enabling it reproduces it.

Workaround

Disable "Gradle for Java" (vscjava.vscode-gradle) for the affected workspace — confirmed via Extension Bisect to resolve the crash loop.

What would help

  • Confirmation of whether extension 2.1.212's manifest needs a chatParticipants declaration in package.json to match VS Code 1.129.0's API, and a patched release if so.
  • Happy to attach full exthost.log/main.log sessions if useful.

View original on GitHub ↗