[BUG] Claude Code hangs and freezes on startup in WSL 2 starting with v1.0.57
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?
I work on both windows (WSL2) and macOS at home. When switching back to my windows machine and trying to update claude code to the newest version (v2.0.x) it no longer worked and froze at the terminal stage before the TUI launched.
Environment
WSL 2: Ubuntu 22.04.5 LTS (jammy)
Terminal: bash
Node.js: v24.4.1 (via NVM)
npm: 11.4.2
What's happening
I work between two computers - macOS and Windows (WSL 2). When switching back to my windows machine and trying to update claude code to the newest version (v2.0.x) it broke completely. When i run claude in my desired project dir, I get a hanging cursor and it never lanuches the TUI.
I tested every version systematically to find where it breaks:
Versions tested:
Working in WSL:
- v1.0.44 ✓
- v1.0.46 ✓
- v1.0.55 ✓
- v1.0.56 ✓ (last working version)
Broken in WSL:
- v1.0.57 - hangs with blinking cursor before UI loads, Ctrl+C works
- v1.0.60 - hangs with blinking cursor before UI loads, Ctrl+C works
- v1.0.65 - hangs with blinking cursor before UI loads, Ctrl+C works
- v1.0.85 - UI loads then freezes, Ctrl+C doesn't work
- v1.0.100 - UI loads then freezes, Ctrl+C doesn't work
- v2.0.0 - hangs with blinking cursor before UI loads, Ctrl+C works
- v2.0.10 - hangs with blinking cursor before UI loads, Ctrl+C works
What Should Happen?
Claude Code should start up normally like it does in v1.0.56 and enter the TUI welcome or continue view.
Error Messages/Logs
Debug log
Here's what shows up in ~/.claude/debug/latest:
[DEBUG] Found 0 plugins (0 enabled, 0 disabled)
[DEBUG] Creating shell snapshot for bash (/bin/bash)
[DEBUG] Looking for shell config file: /home/nicholasgrundl/.bashrc
[DEBUG] Snapshots directory: /home/nicholasgrundl/.claude/shell-snapshots
[DEBUG] Creating snapshot at: /home/nicholasgrundl/.claude/shell-snapshots/snapshot-bash-1759878905068-9hl6d3.sh
[DEBUG] Shell binary exists: true
[DEBUG] Execution timeout: 10000ms
[DEBUG] Writing to temp file: /home/nicholasgrundl/.claude/todos/7b378e21-fc6d-43d1-8950-53fdee351919-agent-7b378e21-fc6d-43d1-8950-53fdee351919.json.tmp.318025.1759878905071
[DEBUG] Temp file written successfully, size: 2 bytes
[DEBUG] Renaming /home/nicholasgrundl/.claude/todos/7b378e21-fc6d-43d1-8950-53fdee351919-agent-7b378e21-fc6d-43d1-8950-53fdee351919.json.tmp.318025.1759878905071 to /home/nicholasgrundl/.claude/todos/7b378e21-fc6d-43d1-8950-53fdee351919-agent-7b378e21-fc6d-43d1-8950-53fdee351919.json
[DEBUG] File /home/nicholasgrundl/.claude/todos/7b378e21-fc6d-43d1-8950-53fdee351919-agent-7b378e21-fc6d-43d1-8950-53fdee351919.json written atomically
[DEBUG] Registered 0 hooks from 0 plugins
[DEBUG] rg error (signal=undefined, code=ABORT_ERR, stderr: ), 0 results
[ERROR] AbortError: AbortError: The operation was aborted
at abortChildProcess (node:child_process:758:27)
at AbortSignal.onAbortListener (node:child_process:828:7)
at [nodejs.internal.kHybridDispatch] (node:internal/event_target:827:20)
at AbortSignal.dispatchEvent (node:internal/event_target:762:26)
at runAbort (node:internal/abort_controller:488:10)
at abortSignal (node:internal/abort_controller:459:3)
at AbortController.abort (node:internal/abort_controller:507:5)
at Timeout._onTimeout (file:///home/nicholasgrundl/.nvm/versions/node/v24.4.1/lib/node_modules/@anthropic-ai/claude-code/cli.js:3280:1163)
at listOnTimeout (node:internal/timers:608:17)
at process.processTimers (node:internal/timers:543:7)
[DEBUG] Loading skills from directories: managed=/etc/claude-code/.claude/skills, user=/home/nicholasgrundl/.claude/skills, project=/home/nicholasgrundl/projects/personalsite/.claude/skills
[DEBUG] Loaded 0 skills total (managed: 0, user: 0, project: 0)
[DEBUG] Total plugin commands loaded: 0
[DEBUG] Total plugin skills loaded: 0
[DEBUG] Ripgrep first use test: PASSED (mode=builtin, path=/home/nicholasgrundl/.nvm/versions/node/v24.4.1/lib/node_modules/@anthropic-ai/claude-code/vendor/ripgrep/x64-linux/rg)
Steps to Reproduce
- uninstall claude code:
npm uninstall -g @anthropic-ai/claude-code
- reinstall claude code version >1.0.56:
npm install -g @anthropic-ai/claude-code@1.0.57
Claude Model
Sonnet (default)
Is this a regression?
Yes, this worked in a previous version
Last Working Version
1.0.56
Claude Code Version
1.0.56 (Claude Code)
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
WSL (Windows Subsystem for Linux)
Additional Information
_No response_
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗