OpenFeign / OpenFeign/feign

migration from 11.8 to 13.2.1

Open
#3,332 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

question
Dominant language
Java
Stars
9.8k
Forks
1.9k
Avg merge
1d 2h
Merged PRs (30d)
41

Description

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.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the linked feign-config configuration and the Retryer.Default#continueOrPropagate entry point, comparing behavior between Feign 11.8 and 13.2.1. Reproduce the timeout and error-status cases, then determine whether Feign itself causes the extra retries or GET / requests; done means the responsible component and conditions are identified.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
api, backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.