[BUG] CLI/extension version mismatch causes silent crash surfaced as "Interrupted · What should Claude do instead?"
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?
Every message sent in Claude Code (both terminal and VSCode panel) immediately returns "Interrupted · What should Claude do instead?" with no other error message or indication of what went wrong. The session appears to connect and initialize successfully, then fails silently on every first message.
The actual error, only visible in ~/.claude/debug/latest, is:
[ERROR] TypeError: Cannot read properties of null (reading 'effortLevel')
at hH0 (cli.js:1845:3909)
at ew (cli.js:2207:4166)
...
This is caused by a version mismatch between the CLI (2.0.76, managed via nix) and the VSCode extension (2.1.118). The extension sends an effort-level configuration in its spawn payload that 2.0.76 does not handle — it reads null where 2.1.x expects an object, throws, and the session dies. The error is completely invisible to the user.
What Should Happen?
Either:
- The CLI should handle a null effort config gracefully (null guard), or
- The CLI/extension should detect the version mismatch at spawn time and surface a clear error ("CLI version X is incompatible with extension version Y, please update") rather than crashing silently
At minimum, the crash should not surface to the user as "Interrupted · What should Claude do instead?" — that message implies the user interrupted something, which is misleading when the underlying process died from an unhandled exception.
Error Messages/Logs
[ERROR] TypeError: TypeError: Cannot read properties of null (reading 'effortLevel')
at hH0 (file:///nix/store/4bmhj54qyccbs7m43vfv804j5dff6aw9-claude-code-2.0.76/lib/node_modules/@anthropic-ai/claude-code/cli.js:1845:3909)
at ew (file:///nix/store/4bmhj54qyccbs7m43vfv804j5dff6aw9-claude-code-2.0.76/lib/node_modules/@anthropic-ai/claude-code/cli.js:2207:4166)
at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
at async file:///nix/store/.../cli.js:2709:1990
at async file:///nix/store/.../cli.js:2709:2831
at async J07 (file:///nix/store/.../cli.js:2640:4939)
at async rK1 (file:///nix/store/.../cli.js:2640:3678)
at async file:///nix/store/.../cli.js:2709:3796
at async file:///nix/store/.../cli.js:2625:3877
The debug log also shows startup completing successfully immediately before the crash, confirming auth, MCP, and connection are all fine — the crash happens specifically at `UserPromptSubmit`, on every message.
Steps to Reproduce
- Install
claude-codeCLI at version 2.0.76 via nix (or any package manager pinned to 2.0.76) - Install VSCode extension version 2.1.118
- Open any workspace in VSCode with the Claude Code panel
- Send any message — including trivial ones like
say hello - Observe: "Interrupted · What should Claude do instead?" immediately, every time
- Check ~/.claude/debug/latest to find the actual error hidden there
The same crash occurs in the terminal CLI directly (claude --model haiku, then say hello) — this is not VSCode-specific. The mismatch alone is sufficient to trigger it.
Workaround: Update the CLI to 2.1.x to match the extension version. (this was not an obvious fix since I had just updated my flake lockfile 3 days ago and this was working fine, broken on monday)
Claude Model
Not sure / Multiple models
Is this a regression?
Yes, this worked in a previous version
Last Working Version
https://github.com/alycda/dotfiles/commit/ce8a4b8163b0d71b8deef0b522110418a1b09548
Claude Code Version
2.0.76
Platform
Anthropic API
Operating System
Other
Terminal/Shell
Other
Additional Information
OS: macOS (nix-darwin, Apple Silicon M-series)
Terminal/Shell: VS Code integrated terminal + OSX Terminal
The CLI is managed via nix-darwin/home-manager. The nix claude-code package was pinned to 2.0.76 while the VSCode extension auto-updated to 2.1.118, creating the mismatch. Users managing the CLI via nix or other package managers with pinned versions are likely to hit this whenever the extension auto-updates past a breaking change boundary. The effortLevel property appears to have been introduced in the 2.1.x series (changelog notes effort-level features throughout 2.1.x) and is not null-guarded in 2.0.76.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗