footprintjs - v11.2.0
    Preparing search index...

    Interface AttemptRecord

    One attempt — the unit of time and failure evidence. Frozen; survives structuredClone.

    Identity: series (the stage execution's runtimeStageId for a stage attempt) plus attempt.

    interface AttemptRecord {
        attempt: number;
        category?: AttemptCategory;
        decision: DecisionEvidence;
        delayMs?: number;
        durationMs: number;
        effect?: AttemptEffect;
        error?: AttemptError;
        idempotencyKey?: string;
        kind: AttemptKind;
        next: AttemptNext;
        of?: number;
        outcome: AttemptOutcome;
        reason: AttemptReason;
        retryLoop?: RetryLoopCall;
        retryOnThrew?: true;
        series: string;
        source?: string;
        startedAt: number;
        system?: string;
        target?: string;
        timeLeftMs?: number;
        timeoutMs?: number;
    }
    Index
    attempt: number

    1-based within the series.

    category?: AttemptCategory

    Present 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.

    The retry-or-stop decision — the evidence decide() would record for retryRules(policy).

    delayMs?: number

    The 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.

    durationMs: number
    effect?: AttemptEffect

    What the attempt did to the outside system (see AttemptEffect). Present only on a touching target.

    error?: AttemptError

    The served error of an attempt that failed, timed out or was aborted.

    idempotencyKey?: string

    The 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.

    decision.chosen — the compact projection a badge reads.

    of?: number

    The attempts the policy allows in total.

    How the attempt itself ended — never rewritten by what the series did next (see AttemptOutcome).

    retryLoop?: RetryLoopCall

    Logical workflow/pass link, stamped by an explicit retry helper; physical series/attempt stay unchanged.

    retryOnThrew?: true

    true 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.

    series: string

    The 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.

    source?: string

    Who ran an 'observed' attempt — the report's source ('sdk' unless it said otherwise). Absent otherwise.

    startedAt: number

    Epoch milliseconds when the attempt started.

    system?: string

    The outside system a touching target names (P3). Absent for a target that touches nothing.

    target?: string

    The 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.

    timeLeftMs?: number

    The time left before the run's deadline when the decision was made (negative once past). Absent without one.

    timeoutMs?: number

    The 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).