Skip to main content
Reference
Check how an instance is set up and what to change. Doctor checks what the CLI can see itself, then asks the server for its own checks: whether data is durable, whether the S3 bucket is in the server’s region, whether the disk cache is on local NVMe rather than network block storage like EBS, whether caches fit in memory, and whether recent queries used indexes. Local, self-hosted, and Cloud. Doctor is read-only. It never changes the instance, its data, its caches, or helix.toml, and it never starts a container.

Usage

Arguments

Options

Checks

Each check passes, warns, fails, or is skipped with its reason. A warning means the setup works but costs performance or money; a failure means it risks losing data or cannot work. Warnings and failures print a fix. The query checks cover queries from the last 24 hours since the server started. A missing index stops being reported once the index is active. Queries that only count matches are not analyzed yet. Server checks need a server image with GET /v2/diagnostics; an older server reports server.diagnostics as skipped. Helix Cloud manages storage, caching, and regions, so a Cloud database reports cloud.managed as skipped.

Behavior

  • Prints Helix doctor, the target, and the server’s uptime, then the checks grouped by area, and a summary such as Setup works, with room to improve · 2 warnings · 9 passed.
  • Passing checks print one line; others also print their detail and fix.
  • Exits 1 when any check fails, after printing the report. Warnings alone exit 0.
  • A local instance whose container is not running reports that, and skips the server checks.
  • --json prints an object with target, uptime_secs (when the server reported its checks), checks, and summary. Each check has id, category, status (pass, warn, fail, or skip), summary, and, when present, detail and fix. The server’s own report is GET /v2/diagnostics.

Examples