Docs
CodeRabbit
Cloudflare
AG Grid
SerpAPI
Netlify
OpenRouter
Neon
WorkOS
Clerk
Electric
PowerSync
Sentry
Railway
Prisma
Strapi
Unkey
CodeRabbit
Cloudflare
AG Grid
SerpAPI
Netlify
OpenRouter
Neon
WorkOS
Clerk
Electric
PowerSync
Sentry
Railway
Prisma
Strapi
Unkey
Debouncer API Reference
Throttler API Reference
Rate Limiter API Reference
Queue API Reference
Batcher API Reference

AsyncRetryerOptions

Defined in: async-retryer.ts:59

Type Parameters

TFn

TFn extends AnyAsyncFunction

Properties

backoff?

ts
optional backoff?: "linear" | "exponential" | "fixed";
optional backoff?: "linear" | "exponential" | "fixed";

Defined in: async-retryer.ts:67

The backoff strategy for retry delays:

  • 'exponential': Wait time doubles with each attempt (1s, 2s, 4s, ...)
  • 'linear': Wait time increases linearly (1s, 2s, 3s, ...)
  • 'fixed': Same wait time for all attempts

Default

ts
'exponential'
'exponential'

baseWait?

ts
optional baseWait?: number | ((retryer) => number);
optional baseWait?: number | ((retryer) => number);

Defined in: async-retryer.ts:72

Base wait time in milliseconds between retries, or a function that returns the wait time

Default

ts
1000
1000

enabled?

ts
optional enabled?: boolean | ((retryer) => boolean);
optional enabled?: boolean | ((retryer) => boolean);

Defined in: async-retryer.ts:77

Whether the retryer is enabled, or a function that determines if it's enabled

Default

ts
true
true

initialState?

ts
optional initialState?: Partial<AsyncRetryerState<TFn>>;
optional initialState?: Partial<AsyncRetryerState<TFn>>;

Defined in: async-retryer.ts:81

Initial state to merge with the default state


jitter?

ts
optional jitter?: number;
optional jitter?: number;

Defined in: async-retryer.ts:86

Jitter percentage to add to retry delays (0-1). Adds randomness to prevent thundering herd.

Default

ts
0
0

key?

ts
optional key?: string;
optional key?: string;

Defined in: async-retryer.ts:94

Optional key to identify this async retryer instance. Note: async retryers are not currently surfaced in the devtools, so this key is only a plain identifier. Retryer instances are often created per-execution (including internally by the other async utilities), so they intentionally do not register with the devtools event bus.


maxAttempts?

ts
optional maxAttempts?: number | ((retryer) => number);
optional maxAttempts?: number | ((retryer) => number);

Defined in: async-retryer.ts:99

Maximum number of retry attempts, or a function that returns the max attempts

Default

ts
3
3

maxExecutionTime?

ts
optional maxExecutionTime?: number;
optional maxExecutionTime?: number;

Defined in: async-retryer.ts:104

Maximum execution time in milliseconds for a single function call before aborting

Default

ts
Infinity
Infinity

maxTotalExecutionTime?

ts
optional maxTotalExecutionTime?: number;
optional maxTotalExecutionTime?: number;

Defined in: async-retryer.ts:109

Maximum total execution time in milliseconds for the entire retry operation before aborting

Default

ts
Infinity
Infinity

maxWait?

ts
optional maxWait?: number | ((retryer) => number);
optional maxWait?: number | ((retryer) => number);

Defined in: async-retryer.ts:114

Maximum wait time in milliseconds to cap retry delays, or a function that returns the max wait time

Default

ts
Infinity
Infinity

onAbort?

ts
optional onAbort?: (reason, retryer) => void;
optional onAbort?: (reason, retryer) => void;

Defined in: async-retryer.ts:118

Callback invoked when the execution is aborted (manually or due to timeouts)

Parameters

reason

"manual" | "execution-timeout" | "total-timeout" | "new-execution"

retryer

AsyncRetryer<TFn>

Returns

void


onError?

ts
optional onError?: (error, args, retryer) => void;
optional onError?: (error, args, retryer) => void;

Defined in: async-retryer.ts:125

Callback invoked when any error occurs during execution (including retries)

Parameters

error

Error

args

Parameters<TFn>

retryer

AsyncRetryer<TFn>

Returns

void


onExecutionTimeout?

ts
optional onExecutionTimeout?: (retryer) => void;
optional onExecutionTimeout?: (retryer) => void;

Defined in: async-retryer.ts:133

Callback invoked when a single execution attempt times out (maxExecutionTime exceeded)

Parameters

retryer

AsyncRetryer<TFn>

Returns

void


onLastError?

ts
optional onLastError?: (error, retryer) => void;
optional onLastError?: (error, retryer) => void;

Defined in: async-retryer.ts:137

Callback invoked when the final error occurs after all retries are exhausted

Parameters

error

Error

retryer

AsyncRetryer<TFn>

Returns

void


onRetry?

ts
optional onRetry?: (attempt, error, retryer) => void;
optional onRetry?: (attempt, error, retryer) => void;

Defined in: async-retryer.ts:141

Callback invoked before each retry attempt

Parameters

attempt

number

error

Error

retryer

AsyncRetryer<TFn>

Returns

void


onSettled?

ts
optional onSettled?: (args, retryer) => void;
optional onSettled?: (args, retryer) => void;

Defined in: async-retryer.ts:145

Callback invoked after execution completes (success or failure) of each attempt

Parameters

args

Parameters<TFn>

retryer

AsyncRetryer<TFn>

Returns

void


onSuccess?

ts
optional onSuccess?: (result, args, retryer) => void;
optional onSuccess?: (result, args, retryer) => void;

Defined in: async-retryer.ts:149

Callback invoked when execution succeeds

Parameters

result

Awaited<ReturnType<TFn>>

args

Parameters<TFn>

retryer

AsyncRetryer<TFn>

Returns

void


onTotalExecutionTimeout?

ts
optional onTotalExecutionTimeout?: (retryer) => void;
optional onTotalExecutionTimeout?: (retryer) => void;

Defined in: async-retryer.ts:157

Callback invoked when the total execution time times out (maxTotalExecutionTime exceeded)

Parameters

retryer

AsyncRetryer<TFn>

Returns

void


throwOnError?

ts
optional throwOnError?: boolean | "last";
optional throwOnError?: boolean | "last";

Defined in: async-retryer.ts:165

Controls when errors are thrown:

  • 'last': Only throw the final error after all retries are exhausted
  • true: Throw every error immediately (disables retrying)
  • false: Never throw errors, return undefined instead

Default

ts
'last'
'last'