Files
gh-rafaelcalleja-claude-mar…/skills/claude-code/references/troubleshooting.md
2025-11-30 08:48:52 +08:00

457 lines
7.5 KiB
Markdown

# Troubleshooting
Common issues, debugging, and solutions for Claude Code.
## Authentication Issues
### API Key Not Recognized
**Symptoms:**
- "Invalid API key" errors
- Authentication failures
- 401 Unauthorized responses
**Solutions:**
```bash
# Verify API key is set
echo $ANTHROPIC_API_KEY
# Re-login
claude logout
claude login
# Check API key format (should start with sk-ant-)
echo $ANTHROPIC_API_KEY | grep "^sk-ant-"
# Test API key directly
curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"claude-sonnet-4-5-20250929","max_tokens":10,"messages":[{"role":"user","content":"hi"}]}'
```
### Environment Variable Issues
```bash
# Add to shell profile
echo 'export ANTHROPIC_API_KEY=sk-ant-xxxxx' >> ~/.bashrc
source ~/.bashrc
# Or use .env file
echo 'ANTHROPIC_API_KEY=sk-ant-xxxxx' > .claude/.env
# Verify it's loaded
claude config get apiKey
```
## Installation Problems
### npm Installation Failures
```bash
# Clear npm cache
npm cache clean --force
# Remove and reinstall
npm uninstall -g @anthropic-ai/claude-code
npm install -g @anthropic-ai/claude-code
# Use specific version
npm install -g @anthropic-ai/claude-code@1.0.0
# Check installation
which claude
claude --version
```
### Permission Errors
```bash
# Fix permissions on Unix/Mac
sudo chown -R $USER ~/.claude
chmod -R 755 ~/.claude
# Or install without sudo (using nvm)
nvm install 18
npm install -g @anthropic-ai/claude-code
```
### Python Installation Issues
```bash
# Upgrade pip
pip install --upgrade pip
# Install in virtual environment
python -m venv claude-env
source claude-env/bin/activate
pip install claude-code
# Install with --user flag
pip install --user claude-code
```
## Connection & Network Issues
### Proxy Configuration
```bash
# Set proxy environment variables
export HTTP_PROXY=http://proxy.company.com:8080
export HTTPS_PROXY=http://proxy.company.com:8080
export NO_PROXY=localhost,127.0.0.1
# Configure in settings
claude config set proxy http://proxy.company.com:8080
# Test connection
curl -x $HTTP_PROXY https://api.anthropic.com
```
### SSL/TLS Errors
```bash
# Trust custom CA certificate
export NODE_EXTRA_CA_CERTS=/path/to/ca-bundle.crt
# Disable SSL verification (not recommended for production)
export NODE_TLS_REJECT_UNAUTHORIZED=0
# Update ca-certificates
sudo update-ca-certificates # Debian/Ubuntu
sudo update-ca-trust # RHEL/CentOS
```
### Firewall Issues
```bash
# Check connectivity to Anthropic API
ping api.anthropic.com
telnet api.anthropic.com 443
# Test HTTPS connection
curl -v https://api.anthropic.com
# Check firewall rules
sudo iptables -L # Linux
netsh advfirewall show allprofiles # Windows
```
## MCP Server Problems
### Server Not Starting
```bash
# Test MCP server command manually
npx -y @modelcontextprotocol/server-filesystem /tmp
# Check server logs
cat ~/.claude/logs/mcp-*.log
# Verify environment variables
echo $GITHUB_TOKEN # For GitHub MCP
# Test with MCP Inspector
npx @modelcontextprotocol/inspector
```
### Connection Timeouts
```json
{
"mcpServers": {
"my-server": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-example"],
"timeout": 30000,
"retries": 3
}
}
}
```
### Permission Denied
```bash
# Check file permissions
ls -la /path/to/mcp/server
# Make executable
chmod +x /path/to/mcp/server
# Check directory access
ls -ld /path/to/allowed/directory
```
## Performance Issues
### Slow Responses
**Check network latency:**
```bash
ping api.anthropic.com
```
**Use faster model:**
```bash
claude --model haiku "simple task"
```
**Reduce context:**
```json
{
"maxTokens": 4096,
"context": {
"autoTruncate": true
}
}
```
**Enable caching:**
```json
{
"caching": {
"enabled": true
}
}
```
### High Memory Usage
```bash
# Clear cache
rm -rf ~/.claude/cache/*
# Limit context window
claude config set maxTokens 8192
# Disable memory
claude config set memory.enabled false
# Close unused sessions
claude session list
claude session close session-123
```
### Rate Limiting
```bash
# Check rate limits
claude usage show
# Wait and retry
sleep 60
claude "retry task"
# Implement exponential backoff in scripts
```
## Tool Execution Errors
### Bash Command Failures
**Check sandboxing settings:**
```json
{
"sandboxing": {
"enabled": true,
"allowedPaths": ["/workspace", "/tmp"]
}
}
```
**Verify command permissions:**
```bash
# Make script executable
chmod +x script.sh
# Check PATH
echo $PATH
which command-name
```
### File Access Denied
```bash
# Check file permissions
ls -la file.txt
# Change ownership
sudo chown $USER file.txt
# Grant read/write permissions
chmod 644 file.txt
```
### Write Tool Failures
```bash
# Check disk space
df -h
# Verify directory exists
mkdir -p /path/to/directory
# Check write permissions
touch /path/to/directory/test.txt
rm /path/to/directory/test.txt
```
## Hook Errors
### Hooks Not Running
```bash
# Verify hooks.json syntax
cat .claude/hooks.json | jq .
# Check hook script permissions
chmod +x .claude/scripts/hook.sh
# Test hook script manually
.claude/scripts/hook.sh
# Check logs
cat ~/.claude/logs/hooks.log
```
### Hook Script Errors
```bash
# Add error handling to hooks
#!/bin/bash
set -e # Exit on error
set -u # Exit on undefined variable
# Debug hook execution
#!/bin/bash
set -x # Print commands
echo "Hook running: $TOOL_NAME"
```
## Debug Mode
### Enable Debugging
```bash
# Set debug environment variable
export CLAUDE_DEBUG=1
export CLAUDE_LOG_LEVEL=debug
# Run with debug flag
claude --debug "task"
# View debug logs
tail -f ~/.claude/logs/debug.log
```
### Verbose Output
```bash
# Enable verbose mode
claude --verbose "task"
# Show all tool calls
claude --show-tools "task"
# Display thinking process
claude --show-thinking "task"
```
## Common Error Messages
### "Model not found"
```bash
# Use correct model name
claude --model claude-sonnet-4-5-20250929
# Update claude-code
npm update -g @anthropic-ai/claude-code
```
### "Rate limit exceeded"
```bash
# Wait and retry
sleep 60
# Check usage
claude usage show
# Implement rate limiting in code
```
### "Context length exceeded"
```bash
# Reduce context
claude config set maxTokens 100000
# Summarize long content
claude "summarize this codebase"
# Process in chunks
claude "analyze first half of files"
```
### "Timeout waiting for response"
```bash
# Increase timeout
claude config set timeout 300
# Check network connection
ping api.anthropic.com
# Retry with smaller request
```
## Getting Help
### Collect Diagnostic Info
```bash
# System info
claude --version
node --version
npm --version
# Configuration
claude config list --all
# Recent logs
tail -n 100 ~/.claude/logs/session.log
# Environment
env | grep CLAUDE
env | grep ANTHROPIC
```
### Report Issues
1. **Check existing issues**: https://github.com/anthropics/claude-code/issues
2. **Gather diagnostic info**
3. **Create minimal reproduction**
4. **Submit issue** with:
- Claude Code version
- Operating system
- Error messages
- Steps to reproduce
### Support Channels
- **Documentation**: https://docs.claude.com/claude-code
- **GitHub Issues**: https://github.com/anthropics/claude-code/issues
- **Support Portal**: support.claude.com
- **Community Discord**: discord.gg/anthropic
## See Also
- Installation guide: `references/getting-started.md`
- Configuration: `references/configuration.md`
- MCP setup: `references/mcp-integration.md`
- Best practices: `references/best-practices.md`