--- title: "Troubleshooting" description: "Diagnosing and resolving common issues with Fabro" --- ## `fabro doctor` The `fabro doctor` command validates your installation: ```bash fabro doctor # Check local configuration fabro doctor --live # Also probe live services (LLM APIs, sandbox, Brave Search) fabro doctor --verbose # Show detailed output for each check ``` It checks: - System dependencies (`openssl`, `node`, `gh`, `dot`) - LLM provider API keys - Sandbox availability (Docker daemon, Daytona API key) - JWT key configuration - Brave Search API key ## Common issues **"No API key configured"** — Set at least one provider key in `.env` or your shell environment. Run `fabro doctor --live` to verify connectivity. **Stall watchdog timeouts** — If runs are cancelled unexpectedly, the agent may be stuck or the LLM provider may be slow. Check `FABRO_LOG=debug` output for `Agent.LlmRetry` events. Increase `stall_timeout` in the graph if needed, or add [fallback providers](/core-concepts/models) to handle outages. **Sandbox creation failures** — For Docker: ensure the Docker daemon is running and the configured image exists. For Daytona: verify `DAYTONA_API_KEY` is set and the `gh` CLI is authenticated. For Exe: verify your SSH keys are configured for `exe.dev` and that `ssh exe.dev` connects successfully. **Port already in use** — Change the port with `fabro serve --port 3001` or stop the conflicting process. **SSE streams disconnecting** — If using a reverse proxy, ensure buffering is disabled and the connection timeout is long enough for workflow runs. See the [reverse proxy example](/administration/deployment#binding-and-tls). **Run config validation errors** — Use `--preflight` to validate without executing: ```bash fabro run run.toml --preflight ```