Logos DX
    Preparing search index...
    interface RetryConfig {
        baseDelay?: number;
        maxAttempts?: number;
        maxDelay?: number;
        retryableStatusCodes?: number[];
        shouldRetry?: (
            outcome:
                | FetchError<FetchEngine.Headers<InstanceHeaders>>
                | FetchResponse<
                    unknown,
                    InstanceHeaders,
                    InstanceParams,
                    InstanceResponseHeaders,
                >,
            attempt: number,
        ) => MaybePromise<number | boolean> | undefined;
        useExponentialBackoff?: boolean;
    }
    Index

    Properties

    baseDelay?: number

    Base delay between retries in ms.

    1000
    
    maxAttempts?: number

    Maximum number of retry attempts.

    3
    
    maxDelay?: number

    Maximum delay between retries in ms

    10000
    
    retryableStatusCodes?: number[]

    Status codes that should trigger a retry

    [408, 429, 500, 502, 503, 504]
    
    shouldRetry?: (
        outcome:
            | FetchError<FetchEngine.Headers<InstanceHeaders>>
            | FetchResponse<
                unknown,
                InstanceHeaders,
                InstanceParams,
                InstanceResponseHeaders,
            >,
        attempt: number,
    ) => MaybePromise<number | boolean> | undefined

    Custom function to determine if a request should be retried. Receives a resolved ok: false response for an HTTP-status retry, or a rejected transport FetchError for a transport retry — narrow with isFetchError(). If the function returns a number, it will be used as the delay in milliseconds before the next retry.

    (outcome, attempt) => attempt < maxAttempts
    
    shouldRetry(outcome, attempt) {

    if (isFetchError(outcome)) return outcome.isConnectionLost();

    return outcome.status >= 500;
    }
    useExponentialBackoff?: boolean

    Whether to use exponential backoff

    true