diff --git a/src/HaveIBeenPwned.PwnedPasswords.Downloader/Program.cs b/src/HaveIBeenPwned.PwnedPasswords.Downloader/Program.cs index 589a3b9..2ba2e1d 100644 --- a/src/HaveIBeenPwned.PwnedPasswords.Downloader/Program.cs +++ b/src/HaveIBeenPwned.PwnedPasswords.Downloader/Program.cs @@ -49,7 +49,7 @@ static IHostBuilder CreateHostBuilder(string[] args) => IHttpClientBuilder clientBuilder = services.AddHttpClient("PwnedPasswords"); clientBuilder.AddResilienceHandler("retry", b => { - b.AddRetry(new RetryStrategyOptions { MaxRetryAttempts = 10, OnRetry = OnRequestErrorAsync }); + b.AddRetry(new RetryStrategyOptions { MaxRetryAttempts = 10, OnRetry = OnRequestErrorAsync, ShouldHandle = ShouldHandle }); }); clientBuilder.ConfigurePrimaryHttpMessageHandler(() => { @@ -78,6 +78,7 @@ static IHostBuilder CreateHostBuilder(string[] args) => #endif }); }); +static ValueTask ShouldHandle(RetryPredicateArguments predicate) => ValueTask.FromResult((predicate.Outcome.Result?.IsSuccessStatusCode ?? false) != true); static ValueTask OnRequestErrorAsync(OnRetryArguments args) {