Skip to content

isRetryable

function isRetryable(err, maxWaitMs?): boolean;

Defined in: core/src/errors.ts:93

Decides whether any failure (ProviderError, thrown Error, TypeError, HTTP response) is worth a retry.

Checks in order:

  1. Caller aborts are never retryable.
  2. An explicit shouldRetry directive on ProviderError (e.g. from server x-should-retry)
  3. Non-retryable kinds (quota, context, model, entitlement, content, invalid) return false.
  4. Excessive retry-after waits (exceeding maxWaitMs) return false. Long waits belong to fallbacks.
  5. Transient kinds (rate, overload, network, timeout) return true.
  6. Transport-level network faults (fetch failed, connection lost, SSL blips) return true.
Parameter Type Default value
err unknown undefined
maxWaitMs number 60_000

boolean