Skip to content
This repository was archived by the owner on Nov 13, 2023. It is now read-only.
This repository was archived by the owner on Nov 13, 2023. It is now read-only.

Exception when adding multiple PolicyHandler #29

@angelaki

Description

@angelaki

With the current .net Version 6.0 I get this exception on execution when adding multiple PolicyHandlers:

An item with the same key has already been added. Key: PolicyHttpMessageHandler.PriorResponse.

Right now I'm adding these two PoliciHandlers to my IHttpClientBuilder:

    .AddPolicyHandler(GetRetryPolicy())
    .AddPolicyHandler(GetTimeoutPolicy())

    public IAsyncPolicy<HttpResponseMessage> GetRetryPolicy(int retryCount = 5)
        => HttpPolicyExtensions
            .HandleTransientHttpError()
            .Or<TimeoutRejectedException>()
            .OrResult(msg => msg.StatusCode == System.Net.HttpStatusCode.NotFound)
            .OrResult(msg => msg.StatusCode == System.Net.HttpStatusCode.Unauthorized)
            .WaitAndRetryAsync(retryCount, retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt - 1)))
        ;

    public IAsyncPolicy<HttpResponseMessage> GetTimeoutPolicy(TimeSpan? timeout = null)
        => Policy.TimeoutAsync<HttpResponseMessage>(timeout ?? TimeSpan.FromSeconds(100));

Is this a known issue? It was working before .net 6.0.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions