[BUG] Claude Code hangs silently after trust dialog on Windows — regression in 2.1.59–2.1.69 (2.1.58 stable works)

Resolved 💬 5 comments Opened Mar 5, 2026 by mstoner-rr Closed Mar 6, 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?

[BUG] Claude Code hangs silently after trust dialog on Windows — regression in 2.1.59–2.1.69 (2.1.58 stable works)

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report
  • [x] I am using the latest version of Claude Code

Environment

  • Platform: Anthropic API (native installer)
  • Claude CLI version: 2.1.69 (also reproduced on 2.1.68)
  • Operating System: Windows (<domain> domain-joined)
  • Terminal: PowerShell
  • Install method: Native (C:\Users\<user>\.local\bin\claude.exe)

Bug Description

Claude Code hangs silently and indefinitely after the trust dialog is accepted. Zero output, zero error messages. No new process spawns after trust acceptance — the hang occurs during initialization, after trust is accepted but before the main TUI loads. --debug produces no additional output. Ctrl+C cannot interrupt the hang; only closing the terminal ends the process.

Confirmed working: Downgrade to 2.1.58 (current stable) completely resolves the issue. The regression was introduced somewhere in the 2.1.59–2.1.69 range.

Reproduction Steps

  1. Install Claude Code 2.1.69 (native installer) on Windows
  2. Open PowerShell
  3. Run claude in any directory (including brand new empty directories)
  4. Accept the trust dialog ("Yes, I trust this folder")
  5. Result: CLI hangs indefinitely — no TUI, no output, no error

Expected Behavior

Claude Code should load the TUI and be ready to accept input after trust dialog acceptance.

Key Diagnostic Findings

The hang is NOT caused by any of these (all ruled out):

| Theory | Test | Result |
|--------|------|--------|
| .claude/settings.local.json corruption | Wiped to {} | Still hangs |
| CLAUDE.md or .mcp.json files | Recursive search — none found | Ruled out |
| hasTrustDialogAccepted in .claude.json | Set to false — trust dialog reappears, but hang returns after re-accepting | Partially confirmed hang is post-trust |
| Corrupt .claude.json projects section | Removed entire projects block | Still hangs |
| Network/auth issue | api.anthropic.com reachable, auth token valid | Ruled out |
| Process not spawning | Confirmed via process list — no child process after trust | Hang is in initialization |
| Renamed .claude.json entirely | Printed "config not found" in a loop, still hung | Can't start without it |
| Outdated version | Updated from 2.1.68 → 2.1.69 | Still hangs |
| statusLine hook in settings.json | Removed entirely | Still hangs |
| MCP subsystem | Set CLAUDE_CODE_DISABLE_MCP=1 | Still hangs |
| All optional features | Set CLAUDE_CODE_SIMPLE=1 + CLAUDE_CODE_DISABLE_MCP=1 | Still hangs |
| .claude.json file permissions | Checked — full control, not read-only (IsReadOnly: False) | Ruled out |
| Duplicate installations (npm conflict) | where.exe claude shows single path; npm not even on PATH | Ruled out |
| Stale lock files | Lock files exist in ~/.claude/tasks/ but are from old sessions | Not the cause |
| .bashrc / .bash_profile hanging Git Bash | No user .bashrc or .bash_profile exists | Ruled out |
| Node.js installation conflict | Node.js recently installed but claude doctor shows clean native install, no npm copy | Ruled out |

claude doctor output (on 2.1.69):

Diagnostics
└ Currently running: native (2.1.69)
└ Path: C:\Users\mstoner\.local\bin\claude.exe
└ Invoked: C:\Users\mstoner\.local\bin\claude.exe
└ Config install method: native
└ Search: OK (bundled)
Updates
└ Auto-updates: enabled
└ Auto-update channel: latest
└ Stable version: 2.1.58
└ Latest version: 2.1.69
Version Locks
└ No active version locks

Resolution:

& ([scriptblock]::Create((irm https://claude.ai/install.ps1))) 2.1.58

2.1.58 starts immediately with no issues.

Additional Context

  • The hang affects every directory, including brand new ones Claude Code has never seen — this is not project-specific.
  • The fact that stable channel is still at 2.1.58 (11 versions behind latest) is consistent with regressions in the 2.1.59+ range.
  • This may be related to:
  • #23016 — Windows 11 terminal freeze on startup in 2.1.30/2.1.31 (MCP init regression, but CLAUDE_CODE_DISABLE_MCP=1 does NOT fix this instance)
  • #29162.claude.json set to read-only causing silent EPERM loop (same symptom pattern, but permissions are fine here)
  • #29652 — Hang after Feb 28 update on Windows due to settings regression
  • The silent failure with zero debug output even with --debug makes this extremely difficult to diagnose from the user side. A fast-fail with an error message would save significant debugging time.

Settings at time of issue

~/.claude/settings.json:

{
  "autoUpdatesChannel": "latest",
  "skipDangerousModePermissionPrompt": true
}

C:\Code\.claude\settings.local.json:

{}

No .bashrc, .bash_profile, CLAUDE.md, or .mcp.json files present.

What Should Happen?

Expected Behavior

Claude Code should load the TUI and be ready to accept input after trust dialog acceptance.

Error Messages/Logs

none....system hangs with no output.  Even with --debug there is no output.

Steps to Reproduce

  1. Install Claude Code 2.1.69 (native installer) on Windows
  2. Open PowerShell
  3. Run claude in any directory (including brand new empty directories)
  4. Accept the trust dialog ("Yes, I trust this folder")
  5. Result: CLI hangs indefinitely — no TUI, no output, no error

Claude Model

None

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

2.1.68, 2.1.69

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

Windows Terminal

Additional Information

_No response_

View original on GitHub ↗

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