Core CLI issues on WSL
Issues the maintainers labelled both platform:wsl and area:core.
83 issues · 20 open · 63 resolved (76%) · first seen Jan 17, 2026
Is this getting better or worse?
This class of problem is converging. 34 new reports in the last 90 days vs 47 in the 90 before — -28%. The open backlog peaked at 20 in 2026-08 and sits at 20 today.
Derived by counting each matching issue from its creation date until it closed. First-party
computation over the anthropics/claude-code tracker — the trend is not published
anywhere upstream.
Which builds report this
60 of these reports name the Claude Code build they were running, spanning 45 releases. Heaviest reporters:
- Claude Code v2.1.118
- Claude Code v2.1.201
- Claude Code v2.1.198
- Claude Code v2.1.158
- Claude Code v2.1.92
- Claude Code v2.1.210
- Claude Code v2.1.196
- Claude Code v2.1.169
Report volume, not a defect count: an issue can mention a build without that build having caused the failure. Versions come from the version string in the bug-report template, matched against real published tags.
Do these get fixed?
Median time to close is 32 days across 63 closures. Of the 63 closures with a recorded reason, 29% were closed as completed and 45 as not-planned or duplicate. The most recent completed fix landed in 2026-08.
Workarounds reported by the community
23 of these issues post a workaround someone says worked. The highest-engagement ones:
- Silent U+FFFD corruption in CJK model output due to TextDecoder missing `{ stream: true }` in SSE line decoder
- …lity of hitting a chunk boundary mid-character much higher. Workaround PostToolUse hook that detects U+FFFD after every Write/Edit and blocks with an error message: Configure in : This detects corruption after the fact a…
Found in the description of #43746 · resolved - Persistent 400 'thinking blocks in the latest assistant message cannot be modified' — interleaved thinking persisted with empty text + signature bricks sessions
- …xt while keeping the signature is the broken middle ground. Workaround (no config change, no loss of thinking) Fully exit the session, then remove only the interior thinking blocks from the JSONL (keep the legitimate lea…
Found in the description of #63277 · resolved - [Bug] One transient advisor failure permanently latches the tool off for the whole session; distinct error causes flattened to generic "unavailable"
- …n the advisor is to latch off early in the session. Current workarounds are restarting the session or wiring an external review fallback. Suggested fix Treat / / -class results as retryable (clear the latch on next call…
Found in the description of #67411 · still open - Claude Code degrades severely after ~6 hours: autonomous destructive actions, ignores instructions, corrupts data
- …e - User has documented 82 lessons learned (essentially bug workarounds) across projects What I'd Expect 1. Self-awareness of degradation : Claude Code should detect when context is getting large and warn the user ("Sess…
Found in the description of #32963 · resolved - [BUG] WSL2: session freezes every ~1s for first 30s on startup — powershell.exe spawned 38 times to resolve USERPROFILE
- …ll WSL (Windows Subsystem for Linux) Additional Information Workaround: Pre-set the USERPROFILE environment variable so Claude Code never shells out to powershell: Environment: - WSL2, kernel 6.6.87.2-microsoft-standard-…
Found in the description of #29672 · resolved
Excerpts are quoted from the linked issue so you can judge relevance before opening it. Threads that only ask for a workaround, or report that there is none, are excluded. These are community suggestions, not official guidance from Anthropic — read the full thread before applying one.
Matching issues 1–83
Ranked by community engagement (reactions weighted over comments).
- [Bug] Auto mode system prompt causes /rewind to silently fail on Bash-edited files
- Silent U+FFFD corruption in CJK model output due to TextDecoder missing `{ stream: true }` in SSE line decoder
- [BUG] Plan Mode (Opus Plan): Claude executes file edits instead of only planning when iterating on the plan
- [BUG] Claude Code hanging on on thinking for prolonged periods of time with no response after thinking
- [BUG] Bun panic: invalid enum value on Windows win11_dt + WSL reg.exe ENOEXEC error
- Persistent 400 'thinking blocks in the latest assistant message cannot be modified' — interleaved thinking persisted with empty text + signature bricks sessions
- Context hit 1M token limit with no auto-compaction and no recovery path
- [Bug] One transient advisor failure permanently latches the tool off for the whole session; distinct error causes flattened to generic "unavailable"
- Claude Code degrades severely after ~6 hours: autonomous destructive actions, ignores instructions, corrupts data
- [BUG] WSL2: session freezes every ~1s for first 30s on startup — powershell.exe spawned 38 times to resolve USERPROFILE
- [BUG] WSL2: Claude Code 2.1.118 crashes on startup - ENOEXEC when spawning reg.exe
- Auto mode's Bash-first steering reverses 2.1.21 and 2.1.31, which shipped the opposite as a fix
- [BUG] 2.1.169: interactive sessions write no JSONL transcript (only ai-title stub) — reproduced on WSL2 + macOS; breaks --resume/history
- [BUG] Child/nested claude processes orphan on /exit in WSL systemd environments, triggering cross-process GUI freezes via vmmem CPU spikes
- [BUG] Context usage percentage computed against 200K while session actually runs with 1M context ([1m] model variant)
- [BUG] Inconsistent Context Window Between CLI and VSCode plugin
- Model fabricated a fake user-injection (harness template) inside its own assistant turn and acted on it
- [MODEL] Claude loses user-identity + role anchors from memory after summary/resume
- [BUG] /context shows 76% header but Messages category shows 138.7% — "Context limit reached" on resume of session within stated free space
- [Bug] HTTP 529 overloaded_error is rendered as "Rate limited" and hard-fails parallel sessions/subagents (no backoff, not logged to errors)
- /resume loses sessions in containers due to PID-keyed session index
- `--resume` can't find recent sessions — sessions-index.json not created/updated since January
- [BUG] Skill invocations persist through context compaction and are re-executed as new requests
- [BUG] "Reset to default" on invalid settings.json overwrites the file without creating a backup
- [BUG] Oversized-image 400 error triggers a retry loop that invalidates prompt cache and inflates cost ~35×
- [BUG] --continue resumes from wrong point after parallel Agent execution
- [BUG] Claude Code segfaults on startup when Anthropic API is unreachable (should fail gracefully)
- Debug log spam: repeated 'Broken symlink or missing file' for managed-settings.json
- Multiple concurrent CLI instances corrupt thinking blocks even from different directories
- Session resume silently truncates model context at null-byte padding from interrupted append
- [BUG] Race conditions in teamMemorySync watcher: shutdown may miss pending pushes or leak timers
- Sonnet loses conversational tone after context compaction and ignores user requests to adjust
- [BUG] V8 JavaScript engine crash inside the Claude Code CLI binary
- LSP server manager initializes before plugins register their servers (race condition)
- [BUG] "Error compacting conversation" causes Session Freeze (cannot save work or context) #22729
- [Bug] advisor_tool_result orphaned when /goal (Stop-hook) notice is injected mid-advisor-roundtrip → permanent API 400
- [BUG] Async sub-agent completion can rebuild warm prompt cache, quickly burning usage limits in long-running sessions
- [BUG] claude code harness sent "data has changed" system reminder with 10-days old date, claude code accepted it
- Intermittent malformed tool calls: emitted as plain text instead of structured tool_use, then cascades via retry
- [BUG] Startup blocks on working-tree stat — first response delayed minutes on WSL2 /mnt/ with medium/large repos
- [BUG] ENOEXEC error when running Claude Code on WSL2 (Bun v1.3.13 regression)
- [BUG] Bun standalone crashes with ENOEXEC posix_spawn reg.exe on WSL2
- Multi-byte UTF-8 characters corrupted in Write tool and Bash tool output
- [BUG] Session name lost after resume - name stored only in PID-keyed file, not propagated to new process
- [BUG] Claude Code (Windows) fails under enterprise SSL inspection — ignores system & custom CA trust
- [BUG] Claude keeps ignoring my gpg signing rules
- [BUG] Claude Doesn't Reliably Follow Multi-Step Instructions in CLAUDE.md #24761
- [BUG] Claude Code Ignores New Requests and Summarizes Previous Context Instead
- Prompt intermittently sent doubled (exact 2x conversation prefix, cache_read=2.00x prev) since v2.1.209 — hidden request burns quota, pins context meter at 100%
- [BUG] CronCreate: lacks predicate-gated execution and context isolation, leading to large unintended costs on repeated trivial checks
- settings.json partial rewrite strips statusLine, enabledPlugins, hooks mid-session
- [BUG] WSL DrvFs case-fold produces silent ~/.claude/projects/ fragmentation; canonicalization fix needs migration step or existing users lose /resume continuity
- C:/Program Files/Git/quit prints session ID for a session file that was never written (WSL + Windows path interop)
- effortLevel setting in settings.json not applied on session start
- Auto-compact not triggering at CLAUDE_AUTOCOMPACT_PCT_OVERRIDE threshold
- Long multi-phase sessions lose all context after sleep/Windows Update
- Opus 4.6/4.7 context window incorrectly detected as 200K instead of 1M
- [BUG] High token usage: schema validation error loads massive JSON into context and consume about 26k tokens
- [BUG] Claude Code hangs when accessing large session files (>50MB) #21022
- Process exits with code 1 mid-session at ~59% context (not saturation)
- WSL2/WSLg: cross-session messaging silently disabled — XDG_RUNTIME_DIR (/mnt/wslg/runtime-dir) is 0777 so the inbox socket dir vet refuses to bind
- Session becomes unreachable ("No conversation found") after git worktree remove deletes its own working directory
- [BUG] CronCreate recurring job fires correctly once, then re-fires every 12-37s (regression of #49198 on v2.1.198)
- Subagent terminated mid-task (budget/context) is reported to parent as "completed" — silent truncation
- [Bug] Auto-compact fails to trigger at high token usage after context reduction
- [BUG] Interactive turns silently no-op (0s, 0 tokens, no /v1/messages request) on a Claude Team seat — --print works, no error shown
- [BUG] Model responded to a user message that does not exist in the session JSONL ("write a letter to the next version of you" injected mid-session)
- [Bug] Cross-model session resumption ignores target model budget, reports misleading spend limit error
- [Bug] Tool-call parser rejects indented XML tags with vague "malformed" error
- Auto-compact ignores CLAUDE_AUTOCOMPACT_PCT_OVERRIDE on 1M-context Opus — no compaction at 52% (522k) with override=40 [v2.1.156]
- [BUG] Background Bash waiter completes but its notification never re-invokes the session; session idles until user input
- [BUG] "Prompt is too long" in a new session when another session has an open plan
- [BUG] Auto-compact preTokens values vary across sessions on the same model/context
- Claude Code CLI reached ~14.6 GiB RSS and triggered a host-wide OOM kill
- [BUG] claude_code.pull_request.count matches MCP tool names, not pull requests — misses tools that put the verb in an argument (follow-up to #45776)
- WSL bridged sessions stop after ~15 min idle and are not relaunched — session_keepalive_interval_ms is 0 while the client default is 120000
- [Bug] Auto-compact window not updated after mid-session model switch
- Feature: run `claude rc` as a background daemon (no open terminal, auto-restart on reboot, start/status/stop control)
- Feature: let `claude rc` expose all subfolders of a parent directory as selectable remote sessions
- Phantom user message: model context diverged from persisted transcript — model acted on an instruction that was never given
- Subagent misidentifies ephemeral auto-mode <system-reminder> as a prompt injection in Bash tool output
- v2.1.201: turn/message desync with background agents — assistant turn starts before queued message delivery; queued user message silently removed
- [Bug] Auto-compact threshold ignores CLAUDE_CODE_DISABLE_1M_CONTEXT in background agents