rig daemon stop exits nonzero with incomplete shutdown (connections phase timeout)
Version: @openrig/cli 0.6.1, macOS (launchd-run herdr provider, one rig with 4 seats)
Behavior:
Daemon stopped with incomplete shutdown: timed-out; phase=connections; targeted http://127.0.0.1:7433;
checked http://127.0.0.1:7433/healthz; PID <n> absent; listener refused. Pending effects are unverified;
state preserved; inspect /Users/<user>/.openrig/daemon-shutdown.json.
The process is gone and the listener refuses, but the 10s connection-drain budget was exceeded and the command exits nonzero with "pending effects unverified". A subsequent rig daemon start succeeds and restores rigs fine, so the failure mode is cosmetic-to-alarming rather than data loss — but a nonzero exit from a routine stop makes restart scripting awkward (a scripted stop && start aborts mid-chain).
Expectation: either the drain completes within the budget, or the exit code distinguishes "stopped cleanly" from "stopped, drain incomplete" (e.g. exit 0 with a warning vs a distinct code), so callers can decide.
Repro: rig daemon stop with an active TUI socket and herdr-managed seats connected.
rig daemon stopexits nonzero with incomplete shutdown (connections phase timeout)Version: @openrig/cli 0.6.1, macOS (launchd-run herdr provider, one rig with 4 seats)
Behavior:
The process is gone and the listener refuses, but the 10s connection-drain budget was exceeded and the command exits nonzero with "pending effects unverified". A subsequent
rig daemon startsucceeds and restores rigs fine, so the failure mode is cosmetic-to-alarming rather than data loss — but a nonzero exit from a routine stop makes restart scripting awkward (a scriptedstop && startaborts mid-chain).Expectation: either the drain completes within the budget, or the exit code distinguishes "stopped cleanly" from "stopped, drain incomplete" (e.g. exit 0 with a warning vs a distinct code), so callers can decide.
Repro:
rig daemon stopwith an active TUI socket and herdr-managed seats connected.