9 KiB
| title | aliases | tags | sources | created | updated | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Claude Code Troubleshooting |
|
|
|
2026-04-17 | 2026-04-17 |
Claude Code Troubleshooting
Quick-reference for installation failures, auth errors, performance problems, and IDE issues.
Installation Error Quick-Reference
| Symptom | Fix |
|---|---|
command not found: claude |
Add ~/.local/bin to PATH |
syntax error near unexpected token '<' |
Install script returned HTML (geo-block or network issue) |
curl: (56) Failure writing output |
Network interrupted mid-download; retry or use Homebrew/WinGet |
Killed during install on Linux |
OOM — add 2 GB swap |
TLS connect error / SSL/TLS secure channel |
Update CA certs; set NODE_EXTRA_CA_CERTS for corporate proxy |
Failed to fetch version |
storage.googleapis.com blocked; set HTTPS_PROXY |
irm is not recognized / && is not valid |
Wrong shell — use correct installer for CMD/PowerShell/Bash |
Claude Code on Windows requires git-bash |
Install Git for Windows; set CLAUDE_CODE_GIT_BASH_PATH in settings |
Error loading shared library |
musl/glibc mismatch — reinstall with correct binary |
Illegal instruction on Linux |
CPU arch mismatch (ARM vs x86) — verify with uname -m |
dyld: cannot load / Abort trap: 6 on macOS |
macOS < 13.0 or binary incompatibility — update macOS |
App unavailable in region |
Country not supported |
Install Diagnostics
Network check
curl -sI https://storage.googleapis.com # installer downloads from here
Proxy setup (corporate networks)
export HTTP_PROXY=http://proxy.example.com:8080
export HTTPS_PROXY=http://proxy.example.com:8080
curl -fsSL https://claude.ai/install.sh | bash
PATH fix (macOS/Linux)
# Zsh
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc && source ~/.zshrc
# Bash
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc
Conflicting installs
which -a claude # find all claude binaries
npm uninstall -g @anthropic-ai/claude-code # remove npm install
brew uninstall --cask claude-code # remove Homebrew install
Directory permissions
test -w ~/.local/bin && echo "writable" || echo "not writable"
sudo mkdir -p ~/.local/bin && sudo chown -R $(whoami) ~/.local
Platform-Specific Issues
Linux: Low-memory install failure (Killed)
Claude Code requires ≥ 4 GB RAM. Add swap:
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile
curl -fsSL https://claude.ai/install.sh | bash
Linux: musl/glibc mismatch
ldd /bin/ls | head -1 # shows "linux-vdso" (glibc) or "musl"
# On Alpine (musl):
apk add libgcc libstdc++ ripgrep
macOS: dyld errors
- Requires macOS 13.0+. Check: Apple menu → About This Mac
- Fallback:
brew install --cask claude-code
Docker: Install hangs
WORKDIR /tmp
RUN curl -fsSL https://claude.ai/install.sh | bash
Add --memory=4g if using Docker Desktop.
Windows: Shell mismatch
| Shell | Command |
|---|---|
| PowerShell | irm https://claude.ai/install.ps1 | iex |
| CMD | curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd |
| WinGet | winget install Anthropic.ClaudeCode |
Windows: Claude Desktop overrides CLI
Update Claude Desktop to latest — older versions register Claude.exe that shadows the CLI.
Windows: Git Bash required
Install from git-scm.com. If already installed:
{ "env": { "CLAUDE_CODE_GIT_BASH_PATH": "C:\\Program Files\\Git\\bin\\bash.exe" } }
WSL2 Issues
- Node from Windows PATH:
which npmshould point to/usr/not/mnt/c/— use nvm in Linux - OAuth login:
export BROWSER="/mnt/c/Program Files/Google/Chrome/Application/chrome.exe" - JetBrains not detected: Add Windows Firewall rule for WSL2 subnet, or set
networkingMode=mirroredin.wslconfig - Sandboxing:
sudo apt-get install bubblewrap socat; WSL1 does not support sandboxing
Authentication & Permissions
Repeated permission prompts
Use /permissions to allowlist specific tools.
Auth flow reset
/logout → close → reopen claude → re-authenticate
If browser doesn't open: press c to copy OAuth URL.
OAuth: Invalid code
Token expired or truncated — press Enter to retry quickly after browser opens.
403 Forbidden
- Claude Pro/Max: check subscription at claude.ai/settings
- Console users: verify "Claude Code" or "Developer" role assigned
- Proxy users: see wiki/claude-code/mcp-integration
Model not found
Check model setting priority (highest wins):
--modelflagANTHROPIC_MODELenv var.claude/settings.local.json.claude/settings.json~/.claude/settings.json
Run /model inside Claude to pick from available models.
Disabled org with active subscription
Stale ANTHROPIC_API_KEY overriding subscription credentials:
unset ANTHROPIC_API_KEY
claude
# remove from ~/.zshrc or ~/.bashrc permanently
macOS Keychain issues
claude doctor # check Keychain access
security unlock-keychain ~/Library/Keychains/login.keychain-db
Token expired frequently
Check system clock accuracy — token validation is time-sensitive.
Configuration Files
| File | Purpose |
|---|---|
~/.claude/settings.json |
User settings (permissions, hooks, model overrides) |
.claude/settings.json |
Project settings (committed) |
.claude/settings.local.json |
Local project settings (not committed) |
~/.claude.json |
Global state (theme, OAuth, MCP servers) |
.mcp.json |
Project MCP servers (committed) |
Full reset
rm ~/.claude.json && rm -rf ~/.claude/ && rm -rf .claude/ && rm .mcp.json
Performance & Stability
High CPU/memory
- Run
/compactregularly - Restart between major tasks
- Add build dirs to
.gitignore - Run
/heapdump→ inspect.heapsnapshotin Chrome DevTools
Auto-compaction thrashing
Autocompact is thrashing = a single file keeps refilling context. Fix:
- Ask Claude to read file in smaller chunks (line ranges, functions)
/compact keep only the plan and the diff- Move large-file work to a wiki/claude-code/custom-subagents
/clearto start fresh
Search not working (@file, custom skills)
Install system ripgrep:
brew install ripgrep # macOS
winget install BurntSushi.ripgrep.MSVC # Windows
sudo apt install ripgrep # Ubuntu/Debian
apk add ripgrep # Alpine
Then set USE_BUILTIN_RIPGREP=0 in environment.
WSL: Slow / incomplete search
Move project to Linux filesystem (/home/) instead of /mnt/c/.
IDE Integration
JetBrains: Escape key not working
Settings → Tools → Terminal → uncheck "Move focus to the editor with Escape"
JetBrains: Not detected on WSL2
Option 1 — Windows Firewall rule:
New-NetFirewallRule -DisplayName "Allow WSL2 Internal Traffic" -Direction Inbound -Protocol TCP -Action Allow -RemoteAddress 172.21.0.0/16 -LocalAddress 172.21.0.0/16
Option 2 — mirrored networking in .wslconfig:
[wsl2]
networkingMode=mirrored
Markdown Formatting Issues
- Code blocks missing language tags → ask: "Add appropriate language tags to all code blocks"
- Use PostToolUse hooks to auto-run
prettieron generated markdown - Document preferred style in
CLAUDE.md(see wiki/claude-code/overview)
Diagnostics Command
/doctor
Checks: install type, version, search, auto-update, settings JSON validity, MCP config errors, keybindings, context warnings, plugin loading.
Key Takeaways
command not foundalmost always means~/.local/binis not in PATH — add it to shell config- Corporate networks: set
HTTP_PROXY/HTTPS_PROXYandNODE_EXTRA_CA_CERTSbefore installing - Linux OOM: add swap before installing on low-RAM VPS; Claude Code needs ≥ 4 GB
- macOS requires 13.0+; use Homebrew as fallback install method on any platform
- Windows: use the right installer for your shell (PowerShell vs CMD vs WSL)
- Auth problems: try
/logout→ restart → re-auth; check for staleANTHROPIC_API_KEYenv var - Model not found: check all 5 config layers in priority order; use
/modelpicker to verify access - Performance:
/compactreduces context;/heapdumpdiagnoses memory growth - Search broken: install system
ripgrepand setUSE_BUILTIN_RIPGREP=0 /doctoris the first diagnostic to run for any unexplained issue