mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-09-06 08:18:58 +00:00
Preflight validation is conceptually distinct from running a workflow — it deserves its own top-level command rather than being a flag on `run`. - Add `PreflightArgs` struct and `Commands::Preflight` variant - Create `commands/preflight.rs` with dedicated `execute()` function - Remove `--preflight` flag from `RunArgs` - Refactor `load_workflow_source_input` to take individual params instead of `&RunArgs` - Refactor `resolve_cli_goal` to take `Option<&str>` / `Option<&Path>` - Refactor `run_preflight` to take `cli_model`/`cli_provider` instead of `&RunArgs`, make `pub(crate)` - Update docs and skills references Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
39 lines
1.8 KiB
Text
39 lines
1.8 KiB
Text
---
|
|
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 `fabro preflight` to validate without executing:
|
|
|
|
```bash
|
|
fabro preflight run.toml
|
|
```
|