RetryPolicy class

Controls automatic re-attempts of a failed request.

The request is rebuilt on every attempt, so its onRequest interceptors run again — that is what lets an interceptor refresh an expired token in onError and have the replay pick up the new one.

Constructors

RetryPolicy({int maxAttempts = 3, Duration initialDelay = const Duration(milliseconds: 300), double backoffFactor = 2.0, Duration maxDelay = const Duration(seconds: 10), double jitter = 0.2, RetryPredicate retryIf = retryTransientFailures})
const

Properties

backoffFactor double
Multiplier applied to the delay after each failed attempt.
final
hashCode int
The hash code for this object.
no setterinherited
initialDelay Duration
Delay before the second attempt; grows by backoffFactor thereafter.
final
jitter double
Fraction of random jitter (0..1) applied to each delay, so that clients failing together do not retry in lockstep.
final
maxAttempts int
Total attempts including the first. 1 disables retrying.
final
maxDelay Duration
Upper bound on any single delay.
final
retryIf RetryPredicate
Whether a given failure should be retried.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

delayFor(int attempt) Duration
Delay to wait before attempt number attempt (1-based; the delay before the second attempt is delayFor(1)).
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Methods

retryTransientFailures(ApiResponse response, int attempt) bool
Default predicate: retry transport failures, timeouts and 5xx responses, but only for methods that are safe to repeat.

Constants

none → const RetryPolicy
A policy that never retries.