Skip to content

migration from 11.8 to 13.2.1 #3332

@Karim0724

Description

@Karim0724

Subject: Possible behavioral changes in Feign 13.2.1: implicit retries and health-check requests to root path

We recently migrated from OpenFeign 11.8 to 13.2.1 and observed two unexpected behaviors that we suspect might be related to changes in Feign itself. Could you please confirm whether these could be caused by the library?

  1. Implicit retries on timeouts / error statuses despite explicit Retryer configuration

Even though we have configured a custom retryer with a maximum of 1 retry attempt (see code below), we are seeing additional retries being performed under the hood when timeouts occur. For example, our setup:

Retryer.Default(300, TimeUnit.SECONDS.toMillis(1), connProps.retryCount)

Retryer.Defult#continueOrPropagate
if (attempt++ >= maxAttempts) { throw e; }

// retryCount = 2 -> 1 retry after the initial attempt, max 2 attempts total
Despite this, we observe more than the expected number of requests hitting the downstream service. Is there any built‑in retry mechanism in Feign 13.x that ignores or supplements the configured Retryer that could explain the extra attempts?

  1. Health-check requests to root (“/”) when the service returns errors

We are calling an external service via Istio with a specific path, e.g. http://external-service/path/{id}. In certain error scenarios (timeouts, 5xx), we notice additional HTTP requests being sent to the root path of the same service (GET /). Our Feign builder does not contain any explicit health-check configuration. Could Feign 13.2.1 be generating such “liveness” probes on its own, and if so, under what conditions?

Our configuration:
https://github.com/Karim0724/feign-config/blob/main/feign-config

Thank you for your help.

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionGeneral usage or 'how-to' questions

    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