Skip to main content

Three channels

A rejected result() — transport fault, protocol fault, broken observation (NikaObservationInterrupted) — does not mean the engine’s workflow failed; the run may still be executing. An admitted failure arrives as resolved result data (status: 'failed' with the engine’s error.code), so a try/catch alone never sees it. The two are different channels by design.

Typed boundary failures

NikaOperationError covers engine refusals across operations — a run() whose file fails admission (no handle is created), schedule operation findings, and the other typed operation doors (NikaOperation lists them). NikaEventBufferOverflowError refuses silent observer loss. NikaRunOwnershipError prevents one facade from acting on another facade’s run object. NikaEngineUnavailable reports local engine resolution failure.
An HTTP trace verification can resolve with verified: false, verdict: "unavailable"; that typed engine verdict is not a transport 404 and must not be converted into one.

Type index

Scan every public result and error type.

Run lifecycle

Keep observation and settlement separate.