RetryInterceptor class

A Dio interceptor that automatically retries failed requests with exponential backoff.

This interceptor handles transient failures by retrying requests that fail due to:

  • Connection timeouts, send timeouts, receive timeouts
  • Network errors (no internet connection)
  • Configurable HTTP status codes (default: 408, 429, 500, 502, 503, 504)

The delay between retries increases exponentially to avoid overwhelming servers that may be experiencing high load.

Example:

dio.interceptors.add(
  RetryInterceptor(
    dio: dio,
    retryOptions: RetryOptions(
      enabled: true,
      maxRetries: 3,
      initialDelay: Duration(milliseconds: 500),
    ),
  ),
);
Inheritance

Constructors

RetryInterceptor({required Dio dio, required RetryOptions retryOptions})
Creates a new RetryInterceptor.

Properties

dio Dio
The Dio instance used to retry requests.
final
hashCode int
The hash code for this object.
no setterinherited
retryOptions RetryOptions
Configuration options for retry behavior.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
onError(DioException error, ErrorInterceptorHandler handler) → void
Handles errors and retries the request if appropriate.
override
onRequest(RequestOptions options, RequestInterceptorHandler handler) → void
Called when the request is about to be sent.
inherited
onResponse(Response response, ResponseInterceptorHandler handler) → void
Called when the response is about to be resolved.
inherited
toString() String
A string representation of this object.
inherited

Operators

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