Crux
GuidesObservability

Runs and delivery health

What incomplete, suspended, and degraded mean in the Runs list, and what to do about each.

You opened Runs and a row says incomplete. Or a run has been suspended for an hour. Or the delivery chip is stuck on unknown. None of these are UI bugs: they are truthful statements about what telemetry the local server actually observed. Here is what each status means and what to do.

Run status

Status describes the run's lifecycle. A logical run can span multiple physical segments (process, isolate, or invocation) when it suspends and resumes.

StatusKindMeaning
runningLiveThe only live state. Work is in progress in at least one open segment.
suspendedDurable pauseNon-terminal. Waiting on a signal, event, or timer; may resume later in a new segment.
okTerminalCompleted successfully.
errorTerminalCompleted with a thrown / failed outcome.
cancelledTerminalExplicitly cancelled.
incompleteTerminal (reconciled)Telemetry ended without a clean run:end; most often the host froze or exited before flushing.
conflictedTerminal (reconciled)Stored terminal evidence or trace identity conflicts; identity could not be resolved.

What to do:

  • incomplete: the run may have succeeded but its process exited before reporting a terminal status. Bind the host lifecycle wrappers from Runtime setup so run:end actually lands before the worker freezes.
  • suspended: nothing is wrong; the run is durably waiting. It resolves when the resuming invocation calls observe.resumeRun() and eventually ends the run.
  • conflicted: two different terminal records (or two logical runs behind one trace alias) were observed. Fix the identity conflict at the source; the server never overwrites the first terminal record.

Fix the underlying flush, host lifecycle, or identity conflict when you need a cleaner terminal status; do not try to "force green" client-side. More diagnosis paths: Troubleshooting.

Delivery health

Delivery health is an independent axis: it describes whether telemetry for the run was observed cleanly, not whether the run succeeded.

StatusChipMeaning
unknownmutedDefault whenever the server cannot prove clean delivery. Never treated as healthy.
healthyokClean terminal run with causal ordering and no gaps, conflicts, or rejected delivery.
degradedwarnSome telemetry records were rejected or delivery could not complete cleanly.

A still-running run stays unknown; a process that never connected stays unknown. The server never invents healthy. The exact promotion conditions, segment/ordering signals, and the plain-language UI copy for every state live in the Observability reference.

Filtering Runs by definition

Catalog View N runs opens Runs pre-filtered to one definition id. See Catalog runtime evidence.

Host lifecycle and incomplete runs

Ephemeral hosts that return before flushing the delivery queue commonly produce incomplete or long-lived running presentation until reconciliation. Use the host wrappers documented under Runtime setup so run:end / span:end actually land.

On this page