> ## Documentation Index
> Fetch the complete documentation index at: https://getfloo.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# doctor

> CLI reference: floo doctor checks applied configuration and managed-service data-plane health

`floo doctor` returns one machine-readable verdict plus the evidence behind it.
Every doctor command supports `--json` and exits non-zero when it detects an
issue, so agents can branch without parsing human output.

## managed-services

Check every ready managed Redis data plane for an app:

```bash theme={null}
floo doctor managed-services
floo doctor managed-services --app my-app
floo doctor managed-services --json
```

floo continuously executes a short-lived read/write canary against each ready
dev, prod, and preview Redis resource. The doctor reports an issue when the
latest command is throttled, rejected by authentication or permissions,
unreachable, rejected by Redis, internally misconfigured, missing, or more than
five minutes old.

Each issue includes:

* service and environment
* broad status and stable reason code
* the last observation time
* a specific remediation

The response never includes a Redis URL, password, provider response, or
customer key. Canary keys use a reserved random namespace and expire after two
minutes.

```json theme={null}
{
  "success": true,
  "data": {
    "app_id": "fb6e7446-2d02-4307-b05e-b00120620da5",
    "app_name": "payments",
    "checked_environments": 2,
    "degraded_detected": true,
    "issues": [
      {
        "resource_id": "7b0890a0-0f53-46e4-b4e7-04fda184cd66",
        "resource_kind": "managed_service",
        "type": "redis",
        "name": "default",
        "environment": "prod",
        "status": "throttled",
        "reason": "throttle_daily_limit",
        "observed_at": "2026-07-24T17:00:00Z",
        "remediation": "Reduce Redis command volume, then contact floo support to raise the managed database allowance."
      }
    ]
  }
}
```

Exit code is `0` only when `issues` is empty. A successful HTTP request can
therefore still produce exit code `1` when the diagnosis finds degraded state.

## accounts

Inspect requested accounts-mode config and the gateway state currently serving
it:

```bash theme={null}
floo doctor accounts
floo doctor accounts --app my-app
floo doctor accounts --json
```

The command exits non-zero when its drift list is non-empty.

## Related

* [Managed Services](/docs/guides/managed-services#redis-health-and-capacity)
* [`floo services`](/docs/cli/services)
* [`floo preflight`](/docs/cli/preflight)
