Retrying failed requests
By default, the Ktor client doesn't retry requests that failed due to network or server errors. You can use the HttpRequestRetry plugin to configure the retry policy for failed requests in various ways: specify the number of retries, configure conditions for retrying a request, or modify a request before retrying.
HttpRequestRetry only requires the ktor-client-core artifact and doesn't need any specific dependencies.
HttpRequestRetry, pass it to the
install function inside a client configuration block:
Basic retry configuration
A runnable example below shows how to configure the basic retry policy:
retryOnServerErrorsfunction enables retrying a request if a
5xxresponse is received from a server and specifies the number of retries.
exponentialDelayspecifies an exponential delay between retries, which is calculated using the Exponential backoff algorithm.
You can learn more about supported configuration options from HttpRequestRetry.Configuration.
Configure retry conditions
There are also configuration settings that allow you to configure conditions for retrying a request or specify delay logic:
Modify a request before retrying
If you need to modify a request before retrying, use