fleet: error: invalid configuration: …
Fleet validates config/fleet.toml, .env, the environment, and command-line overrides before it starts anything. The text after invalid configuration: names the problem. Check the key against the configuration reference.
Fleet reads
config/fleet.toml once at startup. Restart after every change.
Retired MLflow settings: …
Remove FLEET_MLFLOW_MODE, MLFLOW_TRACKING_URI, and MLFLOW_EXPERIMENT_NAME from .env. Select the backend with [mlflow] mode in config/fleet.toml, or per command with --mlflow local|databricks or fleet cli databricks. Set destinations with FLEET_MLFLOW_LOCAL_* or FLEET_MLFLOW_DATABRICKS_* variables. See Observability.
Local MLflow is not reachable at http://127.0.0.1:5001
fleet serve, fleet eval, fleet trace, and fleet optimize don’t start MLflow. Start it with fleet cli, or run an MLflow server on port 5001 yourself, then retry.
Databricks MLflow trace destination mismatch
The Databricks experiment is already linked to a different Unity Catalog trace destination than the one Fleet is configured to use. The server fails at startup with this message, and fleet trace verify fails with MLflow experiment trace destination mismatch for <scope>.
Check FLEET_MLFLOW_DATABRICKS_TRACE_CATALOG, FLEET_MLFLOW_DATABRICKS_TRACE_SCHEMA, and FLEET_MLFLOW_DATABRICKS_TRACE_TABLE_PREFIX, including overrides in .env. Set them to the catalog, schema, and table prefix the experiment already uses, or point Fleet at a different experiment. See Observability.
Model credentials or endpoint
Fleet calls the model inFLEET_LLM_MODEL or [llm].model through DSPy. Set FLEET_LLM_API_KEY, or export the provider’s own key variable, such as OPENAI_API_KEY.
.env
Endpoint must be HTTPS or loopback HTTP without credentials, query, or fragment: fixFLEET_LLM_BASE_URLor theapi_basesetting. Plain HTTP works only on a loopback host such aslocalhost.json_object response format requires the JSON adapter: setadapter = "json"in the same table, or setresponse_format = "auto".The model returned an invalid structured response. Check the configured adapter and JSON mode.: the model’s reply didn’t parse. Tryadapter = "json"withresponse_format = "json_object"if your provider supports JSON mode, and check the Turn’s trace.
Database errors
- The database in
FLEET_DATABASE_URLmust already exist. Fleet creates its tables at startup but not the database. Database schema version <n> is newer than this Fleet version <m>: upgrade Fleet to the release that created the schema.- Routes return
503with messages such asSession storage is unavailable: check the URL, credentials, and network access to the database.
409: A Turn is running on this Session
Only one Turn runs per Session at a time. Session routes that need the Session lock wait 2 seconds, then return 409 with A Turn is running on this Session; retry when it completes. This includes a second POST /sessions/{session_id}/turn and the mode, context, memory, Skills, workspace file, and model routes.
Wait for the running Turn to finish, then retry. Closing the Turn’s stream connection cancels the Turn and releases the lock. History and Turn status reads don’t need the lock and keep working during a Turn.
503: Session runtime is unavailable
The server keeps at most runtime.max_active_sessions Session runtimes (64 by default). When the limit is reached, a request for another Session fails. Free a runtime with DELETE /sessions/{session_id}, which keeps the Session’s history, or raise the limit. See the HTTP API reference.
A Turn stream ends with an error event
Every Turn stream reports exactly one outcome event: turn_complete, error, or turn_cancelled, followed by done. If the Turn stops without reporting an outcome, the stream ends with The Turn failed (request <turn-id>). and Fleet releases the Session lock. Search the server log or MLflow for that Turn ID.
Snapshot 'fleet-rlm-python313-v14' is unusable
Fleet checks the pinned Daytona snapshot before it provisions a Sandbox. This error means the snapshot is missing from your Daytona organization, isn’t active, or has fewer than 4 CPUs, 8 GB of memory, or 8 GB of disk. The message lists the state and resources Daytona reported. If the snapshot is missing, open /setup in fleet cli and choose Build snapshot. If it’s inactive, choose Activate snapshot. If it’s still building, wait for it to become active and retry. See Snapshots.
TimeoutError: Host tool '<name>' did not reply within <N>s
This error appears only when the Turn has a Fleet deadline. Sandbox code that calls a host tool waits for the reply until that deadline. After that, the call raises TimeoutError inside the Sandbox instead of stalling until the Turn deadline. The model sees the error and can retry or change approach. Repeated timeouts usually point to a slow provider or Daytona call. Check the Turn’s trace.
non-loopback binding requires FLEET_ALLOW_NON_LOOPBACK_BIND=true
Fleet has no caller authentication, so it binds only to loopback addresses by default. Set FLEET_ALLOW_NON_LOOPBACK_BIND=true only behind a trusted network boundary. See Security.
Isolated sandbox cleanup is unconfirmed; run evidence is invalid
A GEPA run stopped because Fleet couldn’t confirm that an isolated rollout Sandbox was cleaned up. Fleet doesn’t certify a candidate from that run. Check Daytona for leftover Sandboxes and the server log for the affected Session, then start a new run with fleet optimize or /optimize. See fleet optimize.