Skip to main content

fabro doctor

The fabro doctor command validates your installation:
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 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. Run config validation errors — Use --preflight to validate without executing:
fabro run run.toml --preflight