claude doctor
The doctor command runs diagnostic checks against your Claude Code installation and reports any problems it finds.
DISABLE_DOCTOR_COMMAND=1 to hide it from the CLI.
Debug mode
Pass--debug to any Claude Code command to enable verbose output, including API request/response details, hook execution logs, and internal diagnostics.
Log files
| Log type | Location |
|---|---|
| Debug logs | ~/.claude/debug/ |
| Latest debug log | ~/.claude/debug/latest |
| Session transcripts | ~/.claude/projects/ |
| Error logs | ~/.claude/errors/ (internal builds only) |
Checking the version
Common errors and fixes
Authentication failures
Authentication failures
Symptoms:
401 Unauthorized, 403 Forbidden, or messages about an invalid API key.Fixes:- Verify
ANTHROPIC_API_KEYis set correctly in your environment. - If using OAuth, run
claudeand follow the login prompt, or check that your OAuth token has not expired. - If using
apiKeyHelper, confirm the script is executable and outputs a valid key on stdout. - On Bedrock or Vertex, check that
CLAUDE_CODE_USE_BEDROCK/CLAUDE_CODE_USE_VERTEXis set and that your cloud credentials are valid. - Run
claude doctorto verify the authentication configuration.
Rate limiting
Rate limiting
Symptoms: Messages beginning with phrases like
"You've hit your", "You've used", "You're close to", or "You're out of extra usage".Fixes:- Wait for the reset time shown in the message.
- If you are on a usage-based plan, consider upgrading or purchasing extra usage.
- For team deployments, check whether organization-level policy limits are restricting access (see the enterprise docs).
- Claude.ai Team and Enterprise subscribers can contact support if limits are unexpectedly low.
Context window exceeded
Context window exceeded
Symptoms: Errors about the context being too long, or Claude stops mid-task with a context-related message.Fixes:
- Use
/compactor/clearto start a fresh context. - Break large tasks into smaller sub-tasks so each fits within the context window.
- Consider using the
Explorebuilt-in agent for read-only investigation—it runs in its own context and returns a summary. - Reduce the number of files loaded via
@mentions or CLAUDE.md auto-inclusions.
Network and proxy issues
Network and proxy issues
Symptoms: Timeouts,
ECONNREFUSED, SSL certificate errors, or ERR_NETWORK.Fixes:- Set
HTTPS_PROXYif outbound traffic must go through a corporate proxy. - If you receive SSL certificate errors, ensure the proxy CA certificate is trusted by the system. In CCR environments, the CA is merged automatically.
- Set
CLAUDE_CODE_CLIENT_CERTto a PEM client certificate if your proxy requires mutual TLS. - Check that
anthropic.comis reachable from your network; some firewalls block it. - Run
claude --debugand inspect the request/response log for detailed network diagnostics.
Node.js version incompatibility
Node.js version incompatibility
Symptoms: Syntax errors on startup,
require is not defined, or errors about unsupported ES features.Fixes:- Claude Code requires a recent Node.js version. Run
node --versionand compare against the minimum version in the release notes. - Use a version manager (nvm, fnm, Volta) to switch to a supported version.
- If Claude Code ships as a self-contained binary, ensure you are running the binary and not an older globally installed version (
which claude).
Hook failures
Hook failures
Symptoms: Hooks show errors in the spinner, operations are unexpectedly blocked, or hooks do not appear to run.Fixes:
- Run
claude --debugto see full hook stdout/stderr. - Check the hook configuration with
/hooks. - A hook command that exits with code
2blocks the operation and surfaces stderr to Claude—inspect that output for the block reason. - If
allowManagedHooksOnlyis set in managed settings, user/project/local hooks are silently disabled. Contact your administrator. - Verify the hook command is executable and the path is correct.
Performance tips
Use bare mode
Pass
--bare to skip all hooks and reduce startup overhead. Bare mode is useful for scripting and non-interactive use.Submitting feedback
The/feedback command (also aliased as /bug) opens a feedback form in your browser to report bugs or suggestions.
DISABLE_FEEDBACK_COMMAND=1 / DISABLE_BUG_COMMAND=1 is set.