shouldRetry method
bool
shouldRetry({
- required ApiError error,
- required int attemptNumber,
- required HttpMethod method,
Evaluates whether an error condition qualifies for retry.
Implementation
bool shouldRetry({
required ApiError error,
required int attemptNumber,
required HttpMethod method,
}) {
if (attemptNumber >= retryCount) {
return false;
}
if (!retryOnMethods.contains(method)) {
return false;
}
// Always retry network timeouts and socket connectivity issues
if (error.type == ApiErrorType.network || error.type == ApiErrorType.timeout) {
return true;
}
// Retry transient 502 Bad Gateway, 503 Service Unavailable, 504 Gateway Timeout
if (error.type == ApiErrorType.server) {
final status = error.statusCode;
if (status == 502 || status == 503 || status == 504) {
return true;
}
}
return false;
}