Readonlyattempt1-based within the series.
Optional ReadonlycategoryPresent when the attempt failed, timed out or was aborted; absent for 'ok' and 'paused'. Read off the
error as it stood when the decision was made (after retryOn ran), like error.
ReadonlydecisionThe retry-or-stop decision — the evidence decide() would record for retryRules(policy).
Optional ReadonlydelayThe wait before the next attempt — present when the decision computed it: a retry, or (under a deadline) a
no-time-left stop, whose wait would have outlasted the time left.
ReadonlydurationOptional ReadonlyeffectWhat the attempt did to the outside system (see AttemptEffect). Present only on a touching target.
Optional ReadonlyerrorThe served error of an attempt that failed, timed out or was aborted.
Optional ReadonlyidempotencyThe key the attempt was made under, as the run SERVES it — retained under the diagnostic rule as
{ idempotencyKey }, so a redaction rule of that name (or policy.diagnostics) scrubs it. Absent without a key.
ReadonlykindReadonlynextdecision.chosen — the compact projection a badge reads.
Optional ReadonlyofThe attempts the policy allows in total.
ReadonlyoutcomeHow the attempt itself ended — never rewritten by what the series did next (see AttemptOutcome).
ReadonlyreasonOptional ReadonlyretryLogical workflow/pass link, stamped by an explicit retry helper; physical series/attempt stay unchanged.
Optional Readonlyretrytrue when the policy's retryOn THREW on this attempt's error (absent otherwise). A throw is "do not
retry", so the reason is 'declined'; this flag keeps a broken predicate apart from a real false.
ReadonlyseriesThe series the attempt belongs to. A stage attempt: its execution's runtimeStageId. A call — $call, or an
observed SDK call — made during stage attempt n: <runtimeStageId>@<n>.<k>, the k-th call of that attempt,
so <series>@<attempt> is the attempt id of foottrace's grammar (design §3.4). A standalone attempt(): the
caller's name for the operation.
Optional ReadonlysourceWho ran an 'observed' attempt — the report's source ('sdk' unless it said otherwise). Absent otherwise.
ReadonlystartedEpoch milliseconds when the attempt started.
Optional ReadonlysystemThe outside system a touching target names (P3). Absent for a target that touches nothing.
Optional ReadonlytargetThe outside target of a 'call' or 'observed' attempt — a NAME from code ('stripe.quotes.create'), never
a value. Absent on a stage attempt: its stage names it.
Optional ReadonlytimeThe time left before the run's deadline when the decision was made (negative once past). Absent without one.
Optional ReadonlytimeoutThe cap this attempt ran under, in milliseconds — min(RetryPolicy.timeoutMs, time left before the deadline)
at its start. Absent when neither was set (the attempt ran uncapped).
One attempt — the unit of time and failure evidence. Frozen; survives
structuredClone.Identity:
series(the stage execution'sruntimeStageIdfor a stage attempt) plusattempt.