Skip to content
Buy me a coffee

RetryOptions

Defined in: src/retry.ts:58

T

optional backoffType?: BackoffType

Defined in: src/retry.ts:67

Default ‘constant’.


optional budget?: RetryBudget

Defined in: src/retry.ts:92

Shared cap on retries relative to traffic (retry-storm protection). Share one instance per dependency.


optional delay?: Duration

Defined in: src/retry.ts:65

Base delay. Default 2000 ms.


optional delayGenerator?: (args) => MaybePromise<Duration | undefined>

Defined in: src/retry.ts:74

Return a delay (e.g. from a Retry-After header); undefined or negative falls back to the computed delay.

RetryPredicateArgs<T>

MaybePromise<Duration | undefined>


optional factor?: number

Defined in: src/retry.ts:69

Growth per retry for 'exponential' (delay × factor^attempt). Default 2. Ignored with useJitter: true (decorrelated jitter).


optional initialDelay?: Duration

Defined in: src/retry.ts:78

Wait this long before the first attempt too (e.g. to let a just-started dependency come up).


optional maxDelay?: Duration

Defined in: src/retry.ts:72

Caps computed delays (not those from delayGenerator).


optional maxRetryAttempts?: number

Defined in: src/retry.ts:63

Retries in addition to the original call. Default 3. Infinity retries until aborted.


optional maxRetryTime?: Duration

Defined in: src/retry.ts:80

Stop scheduling retries once this much time has passed since the first attempt (the attempt in flight isn’t cancelled).


optional name?: string

Defined in: src/retry.ts:59


optional onBudgetExhausted?: (args) => MaybePromise<void>

Defined in: src/retry.ts:94

Called when the budget refuses a retry; the last outcome is returned.

RetryPredicateArgs<T>

MaybePromise<void>


optional onFailedAttempt?: (args) => MaybePromise<void>

Defined in: src/retry.ts:86

After every handled failure, the last one included, with how many retries are left.

OnFailedAttemptArgs<T>

MaybePromise<void>


optional onRetry?: (args) => MaybePromise<void>

Defined in: src/retry.ts:84

Before each retry’s delay.

OnRetryArgs<T>

MaybePromise<void>


optional onRetryExhausted?: (args) => MaybePromise<void>

Defined in: src/retry.ts:88

When retries run out (or maxRetryTime passes) and the last outcome is still a failure.

RetryPredicateArgs<T>

MaybePromise<void>


optional randomizer?: () => number

Defined in: src/retry.ts:90

Random source in [0, 1) used for jitter.

number


optional respectRetryAfter?: boolean

Defined in: src/retry.ts:76

Wait at least an error’s retryAfter (ms), e.g. a rate-limit rejection’s; still capped by maxDelay. Default true.


optional shouldConsumeRetry?: (args) => MaybePromise<boolean>

Defined in: src/retry.ts:82

Return false for failures that shouldn’t use up a retry (e.g. a token refresh); they are retried without counting.

RetryPredicateArgs<T>

MaybePromise<boolean>


optional shouldHandle?: ShouldHandle<RetryPredicateArgs<T>>

Defined in: src/retry.ts:61

Default: transient errors (not 4xx except 408/429, not aborts, not rejections). An open circuit is never retried.


optional useJitter?: Jitter

Defined in: src/retry.ts:70