Claude Code v2.1.229
Released Aug 12, 2026 (18 days ago).
160 issues reference this build
114 still open
46 resolved (29%)
"References this build" means the issue body mentions running 2.1.229 (from the
bug-report template). It reflects report volume, not a proven defect count — an issue may mention a
version without being caused by it. First-party data from the anthropics/claude-code tracker.
Top issues reported on v2.1.229
Ranked by community engagement (reactions and comments).
- [BUG] Cross-session messages are displayed in the target session but never enqueued (model never sees them)
- [BUG] claudeAiOauth wiped from Keychain (tokens blanked, expiresAt:0) when concurrent Desktop sessions race the single-use refresh token — refresh failure clobbers the winner's rotated credential
- [BUG] Cowork VM: guest kernel does not enumerate NVMe disks on Intel Mac (x86_64) — hangs after Run /init, VM connection timeout after 60 seconds
- 2.1.229 Windows: cross-session message now delivers but immediately freezes the recipient session (zero output until watchdog) — regression persists from 2.1.227
- Desktop: session list PR badges all reset to "open" after app update
- Fresh install: desktop app sidebar shows no session history despite intact ~/.claude/projects data
- [BUG] Desktop app: after auto-update stealth-relaunch, the conversation view rewinds — navigation history is saved with a stale `active` index
- [BUG] security-guidance plugin: `_glob_match` docstring says `**` matches any depth, but fnmatch implementation silently excludes top-level files from security rules
- [BUG] CoworkVMService crashes when Browser panel tool is used to interact with a page
- [BUG] Dispatch entry missing from Cowork sidebar in Claude Desktop (Windows) while visible on mobile
- [BUG] Gateway provider discards the refresh token and has no refresh-token grant, so every renewal is a full device-code re-grant
- [BUG] Windows desktop 1.30096.5: whole app killed when Browser pane renders a Cloudflare challenge — Code Integrity blocks vk_swiftshader.dll (exit 0x060C201E), MSIX flips to Modified. Root-cause evidence for #80444
- [BUG] Windows: Claude Code in-app preview device mode toggle (Mobile/Tablet/Responsive) renders two overlapping previews instead of switching the viewport
- [BUG] Windows: fatal GPU process crash (exitCode 101457950) during Claude Code sessions kills entire app; MSIX package requires Repair to relaunch
- [Bug] Long-running sessions idle at turn boundaries without auto-continuation or wake signals
- Auto-mode classifier: ~310s permission decisions that resolve to "Allowed" — the 30s classifier timeout never fires
- [BUG] Interactive mode ignores ANTHROPIC_API_KEY environment variable
- Hooks: unrecognized keys (e.g. `args`) are dropped silently, and hook stdout reaches the terminal with control sequences intact
- [BUG] cyber safeguard model-fallback is now session-scoped (2.1.229) and false-positives on legitimate security work — reproduced live on Opus 5
- [BUG] Cowork VM regression on Intel Mac (x86_64): guest never connects after bundle 2a762ad rollout — same app version works on arm64
- [FEATURE] Thinking summaries should follow the configured language (Korean: 84.5% English across 380 blocks)
- Desktop app: latest assistant messages stop rendering while the transcript on disk stays complete and intact
- Desktop app: creating a new session group wipes all existing sidebar groups (dframe-group-scopes overwritten instead of merged)
- [BUG][SDK] task-notification resumes a stopped turn with an already-aborted AbortController — every later tool_use is cancelled and reported as a user refusal
- [BUG] Windows (MSIX) 1.30096.1.0: in-app update fails with "Another program is currently using this file"; app unlaunchable until reboot
- [BUG] Claude Desktop (Windows/MSIX): main process self-exits with code -1 seconds after launch - survives reinstall, empty profile and reboot
- [BUG] dark-daltonized: userMessageBackground renders at 1.18:1 on a default dark terminal, leaving user messages with no visible separator
- macOS: scheduled-task sessions wedge mid tool-call (~30s in, WebSearch/WebFetch), stay "running" for days, and pin global concurrency slots until the whole schedule starves
- Jammed background tasks + Remote Control reconnect loops silently consume Max usage window after forced token rotation
- Regression: starting a second local Code session SIGTERMs the first one (desktop 1.32352.1)
Changelog
What's changed
- Documented
claude remote-control --continuefor resuming the most recent Remote Control session - Added server-supplied Claude Code hook support for self-hosted runner sessions, matching managed-environment behavior
- Added SSE keepalive pings to gateway streaming responses during long thinking pauses, preventing idle-timeout disconnects on Vertex and Bedrock upstreams
- Added plugin marketplace
commandsources: a local command (e.g. an IDE) prints the plugin directory, which is re-resolved each session and applied without a restart;mode: "link"uses it in place ListAgentsnow marks disconnected Remote Control sessions asofflineand labels your cloud sessions ascloud- Fixed long responses partly disappearing while streaming and being printed twice in the terminal
- Fixed a crash to the error screen (including on
--resumeof the affected session) when a tool call had a non-stringglob,file_path, orcommandvalue - Fixed a RangeError crash when a progress bar or markdown table rendered in a very narrow terminal window (could also crash
claude --continue/--resumeat startup) - Fixed a crash on Windows when a tool call or message referenced a file by an extended-length (
\\?\) or UNC path - Fixed auto mode failing on every tool call for users who disable the attribution header via
CLAUDE_CODE_ATTRIBUTION_HEADER(direct Anthropic API connections) - Fixed
/modelrejecting Sonnet/Opus 1M for claude.ai subscribers using a customANTHROPIC_BASE_URLgateway - Fixed MCP OAuth with strict authorization servers by using
127.0.0.1instead oflocalhostin the redirect URI - Fixed Remote Control clients showing a stuck working spinner after a slash command typed in the laptop terminal
- Fixed the Claude Code Review workflow generated by
/install-github-appcompleting without posting its review on the pull request - Fixed multi-second UI stalls after editing a file with thousands of IDE diagnostics while the IDE extension is connected
- Fixed one-shot
claude plugincommands leaving a stray liveness file that could prevent cleanup of outdated plugin versions - Fixed dynamic workflows inside CPU-limited containers using the host machine's core count instead of the container's CPU limit
- Fixed a file-watcher handle leak after atomic file replacements, and an uncaught error on Windows when the scheduled-tasks watcher failed on a network or virtual filesystem
- Fixed SDK and
--input-format stream-jsonsessions getting a 400 API error when a whitespace-only message was submitted - Fixed conversations whose messages alone exceed the API's 32 MB request limit retrying compaction when no images or documents can be stripped; they now fail once with a clear message
- Fixed OpenTelemetry export from Claude Desktop sessions being rejected by the Desktop-managed gateway when that gateway is also the telemetry endpoint
- Fixed self-hosted runner and other remote sessions exiting at startup when
managed-mcp.jsonis deployed and the server delivers MCP servers; those servers are now skipped with a warning - Fixed self-hosted runner repository preparation hanging on a Git Credential Manager prompt; git now fails fast when credentials are missing
- Improved workflow fan-outs to stagger same-prefix sibling agents so subsequent agents read the cached prompt prefix instead of re-paying it (
CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS=0disables) - Improved "prompt is too long" errors to explain why automatic compaction could not recover instead of only suggesting
/compact - Improved sandbox: IPv6 literals in network domain lists are now bracketed (
[::1]:443), and ambiguous spellings are enforced fail-closed and flagged by/doctor - Updated
/loginto repeat theCLAUDE_CODE_OAUTH_TOKENoverride warning after a successful login - Changed
/commit-push-prso git/gh commands with dangerous flags (--force,--amend,--no-verify, etc.) are no longer auto-approved - Changed self-hosted runn