public static void Main()
var shouldHandle = new PredicateBuilder<HttpResponseMessage>()
.HandleResult(r => r.StatusCode == HttpStatusCode.InternalServerError);
var pipeline = new ResiliencePipelineBuilder<HttpResponseMessage>()
ShouldHandle = shouldHandle,
FallbackAction = static args => Outcome.FromResultAsValueTask(ResolveFallbackResponse(args.Outcome))
ShouldHandle = shouldHandle,
Delay = TimeSpan.FromSeconds(0.5),
var result = pipeline.Execute(() => new HttpResponseMessage(HttpStatusCode.InternalServerError));
result.StatusCode.Dump();
static HttpResponseMessage ResolveFallbackResponse(Outcome<HttpResponseMessage> outcome)
=> new HttpResponseMessage(HttpStatusCode.RequestTimeout);