OpenRig

Troubleshooting

Documented against OpenRig 0.5.14. Help text uses "node" where these pages say seat, for a seat's position in the running rig.

This is a revision of the existing troubleshooting page: it keeps that page's shape (the symptom, the surface that shows the truth, the recovery command) and adds the verbs the old page did not know about.

Start with the installation, not the rig

rig preflight asks whether this machine can run OpenRig at all. rig doctor verifies the install: packaged assets, Node, tmux, writable state paths and the daemon port; --spec compares a spec against the running rig of the same name. Both work without a running daemon.

rig preflight
rig doctor
rig doctor --spec ./rig.yaml

The daemon

rig daemon status says whether it is up; logs --follow reads what it tried and refused, in its own voice. stop has a shutdown budget and exits non-zero on an incomplete drain, so a non-zero stop is a fact to inspect, not a failure to retry blindly. After a reboot, rig start brings the daemon, the kernel rig and the rigs that were last running back in one move; --last, --all and --rigs are the headless forms. When the daemon is down, rig crash-cart emits the recovery verdict and discovery as JSON without changing anything, and bare rig opens the same recovery cockpit interactively.

rig daemon status
rig daemon logs --follow
rig start --last
rig crash-cart

A seat looks stuck

Read the record before the pane. rig parked diagnoses stopped seats that owe work; a held row is healthy only while its recorded wake is live. rig heartbeat shows whether in-flight work is being proven, and --nudge sends informational reminders without touching the rows. rig health lists read-only, explainable findings for a seat, a rig or the instance, with severity and status, and rig health explain <finding-id> shows the window, source, rule, evidence and confidence behind one. Empty output is never a healthy assertion. Then, and only then, tmux attach or rig capture the pane, and rig launch <rig> <seat> to relaunch one seat without disturbing the rest.

rig parked --rig my-rig
rig heartbeat --rig my-rig
rig health --rig my-rig
rig health explain <finding-id>
rig launch my-rig dev.impl

Help uses "node" where this page says seat, for a seat's position in the running rig.

Restore came back mixed

A restore is not all-or-nothing. Outcomes are reported per seat: resumed or rebuilt, started fresh or fresh-primed, waiting on a decision or attention, or failed. Mixed outcomes are normal output. Use rig ps --nodes for the live state of the current rig (-A for all rigs), then decide whether to keep a fresh seat, relaunch one, or restore again from a specific snapshot with rig restore-check first.

Service-backed rigs

For a rig that manages an application, rig env status <rig> is the honest health surface; rig env logs and rig env down follow. Do not infer environment truth from rig ps alone.

Last resort

rig destroy is the guarded destructive surface for bad local state: --state recreates an empty state root, --all also removes managed tmux sessions, --backup moves state aside instead of deleting it, and both --yes and --confirm destroy-openrig-state are required. It is the end of the list, not the start.

The web UI

rig ui open still exists as a verb. It is unmaintained and replaced by the terminal UI; never diagnose product behaviour from it.

The troubleshooting family

Command What it does (from help) Help source
rig crash-cart Emit the daemon-down recovery verdict + discovery as JSON (read-only). crash-cart.txt
rig daemon Manage the OpenRig daemon daemon.txt
rig daemon logs Show daemon logs daemon.logs.txt
rig daemon start Start the daemon daemon.start.txt
rig daemon status Show daemon status daemon.status.txt
rig daemon stop Stop the daemon (10s shutdown budget; 12s process wait; incomplete drain exits nonzero) daemon.stop.txt
rig destroy Destroy OpenRig local state for recovery destroy.txt
rig doctor Verify OpenRig install health doctor.txt
rig health Inspect read-only, explainable system health records health.txt
rig health checkpoint Inspect or submit an outcome-boundary lineage census (not a per-edit ritual) health.checkpoint.txt
rig health diagnose Preview policy admission; --apply creates or re-presents bounded diagnostic context health.diagnose.txt
rig health diagnosis Read occurrences and record agent-owned dispositions health.diagnosis.txt
rig health diagnosis list List occurrence summaries; evidence payloads require --full health.diagnosis.list.txt
rig health diagnosis notify Explicitly request human delivery under policy and verified connector readiness health.diagnosis.notify.txt
rig health diagnosis record health.diagnosis.record.txt
rig health diagnosis show Inspect current state and decisions; expand retained evidence deliberately health.diagnosis.show.txt
rig health explain Explain one health finding from its canonical bounded record health.explain.txt
rig health policy Inspect effective policy and engine state; apply edited JSON with --file health.policy.txt
rig heartbeat Show workflow execution proof state from queue files heartbeat.txt
rig parked Are we parked? Derived diagnosis: stopped seats owing work; HELD is healthy only while its recorded wake is live parked.txt
rig preflight Check system readiness for OpenRig preflight.txt
rig start Start the daemon, verify kernel, and restore rigs that were last running start.txt
rig ui UI commands ui.txt
rig ui open Open the OpenRig UI in the default browser ui.open.txt
rig usage Per-seat token telemetry over time (series + top-N burn) , facts for the oversight detector usage.txt
rig usage series raw per-seat usage samples, oldest first usage.series.txt
rig usage top top-N seats by token burn over the window usage.top.txt

Where it goes next

  • Continuity: snapshots, restore-check and handover.
  • The terminal UI: the HEALTH tab shows the same findings rig health lists.