{ "title": "Troubleshooting 🔧", "content": "When OpenClaw misbehaves, here's how to fix it.\n\nStart with the FAQ’s [First 60 seconds](/help/faq#first-60-seconds-if-somethings-broken) if you just want a quick triage recipe. This page goes deeper on runtime failures and diagnostics.\n\nProvider-specific shortcuts: [/channels/troubleshooting](/channels/troubleshooting)\n\n## Status & Diagnostics\n\nQuick triage commands (in order):\n\n| Command | What it tells you | When to use it |\n| ---------------------------------- | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------- |\n| `openclaw status` | Local summary: OS + update, gateway reachability/mode, service, agents/sessions, provider config state | First check, quick overview |\n| `openclaw status --all` | Full local diagnosis (read-only, pasteable, safe-ish) incl. log tail | When you need to share a debug report |\n| `openclaw status --deep` | Runs gateway health checks (incl. provider probes; requires reachable gateway) | When “configured” doesn’t mean “working” |\n| `openclaw gateway probe` | Gateway discovery + reachability (local + remote targets) | When you suspect you’re probing the wrong gateway |\n| `openclaw channels status --probe` | Asks the running gateway for channel status (and optionally probes) | When gateway is reachable but channels misbehave |\n| `openclaw gateway status` | Supervisor state (launchd/systemd/schtasks), runtime PID/exit, last gateway error | When the service “looks loaded” but nothing runs |\n| `openclaw logs --follow` | Live logs (best signal for runtime issues) | When you need the actual failure reason |\n\n**Sharing output:** prefer `openclaw status --all` (it redacts tokens). If you paste `openclaw status`, consider setting `OPENCLAW_SHOW_SECRETS=0` first (token previews).\n\nSee also: [Health checks](/gateway/health) and [Logging](/logging).\n\n### No API key found for provider \"anthropic\"\n\nThis means the **agent’s auth store is empty** or missing Anthropic credentials.\nAuth is **per agent**, so a new agent won’t inherit the main agent’s keys.\n\n* Re-run onboarding and choose **Anthropic** for that agent.\n* Or paste a setup-token on the **gateway host**:\n \n* Or copy `auth-profiles.json` from the main agent dir to the new agent dir.\n\n### OAuth token refresh failed (Anthropic Claude subscription)\n\nThis means the stored Anthropic OAuth token expired and the refresh failed.\nIf you’re on a Claude subscription (no API key), the most reliable fix is to\nswitch to a **Claude Code setup-token** and paste it on the **gateway host**.\n\n**Recommended (setup-token):**", "code_samples": [ { "code": "* Or copy `auth-profiles.json` from the main agent dir to the new agent dir.\n\nVerify:", "language": "unknown" }, { "code": "### OAuth token refresh failed (Anthropic Claude subscription)\n\nThis means the stored Anthropic OAuth token expired and the refresh failed.\nIf you’re on a Claude subscription (no API key), the most reliable fix is to\nswitch to a **Claude Code setup-token** and paste it on the **gateway host**.\n\n**Recommended (setup-token):**", "language": "unknown" } ], "headings": [ { "level": "h2", "text": "Status & Diagnostics", "id": "status-&-diagnostics" }, { "level": "h2", "text": "Common Issues", "id": "common-issues" }, { "level": "h3", "text": "No API key found for provider \"anthropic\"", "id": "no-api-key-found-for-provider-\"anthropic\"" }, { "level": "h3", "text": "OAuth token refresh failed (Anthropic Claude subscription)", "id": "oauth-token-refresh-failed-(anthropic-claude-subscription)" } ], "url": "llms-txt#troubleshooting-🔧", "links": [] }