Skip to content
Developer Preview

TurnOutcome

How a turn ended, from a waiter’s point of view.

The protocol names exactly two resolutions of the turn-wait, and the pre-minted turn is why there are two rather than one:

  • completed — the ordinary terminal, AND the launch-failure exit ("deferred_start_failed": terminal "failed", error.kind: "launchError", no preceding turn/started). isLaunchFailure reads that WIRE marker; observedStart does not discriminate them, because a terminal-first fold is legitimate for turns that really ran.
  • unqueued — the reclaim. No turn/completed will ever carry this turnId, so a wait folding only turn/completed hangs forever.

turn/retracted and turn/retryScheduled are deliberately absent: a retracted turn still reaches its own terminal, and a scheduled retry is explicitly non-terminal.

Source

clients/sdk-ts/src/facade/turn-handle.ts:67

{
"kind": "Type alias",
"canonicalPath": "TurnOutcome"
}