spring-cloud / spring-cloud/spring-cloud-gateway

Many requests break after 4.2.0 upgrade for unclear reasons

Open
#3,662 14 comments 6 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feedback-provided
Dominant language
Java
Stars
4.9k
Forks
3.5k
Avg merge
20h 57m
Merged PRs (30d)
8

Description

Describe the bug
Using spring-boot-starter-gateway with 3.3.5 spring boot version and 2023.0.3 spring cloud version, everything works as expected and all of our requests are routed.
We have discovered upgrading to 3.4.1 spring boot version with 2024.0.0, a number of external requests being made are failing. We have attempted to debug the reason and it is pretty unclear. We know it's something to do with the upgrade as the requests made have been identical, and reverting solves the issue.
We checked the changes between 4.1.5 and 4.2.0 of this dependency (which is what the starter provides) and they are very substantial. It may also be down to a transitive dependency - at the moment it is unclear.

Debugging using our observability tool, we find that some of the external requests seem to match /** under Spring Webflux rather than the normal route. This is odd, as other requests coming in match the route correctly.

The only things different between the requests that break and those that don't are certain headers which should be unrelated to routing.

Sample
Cannot provide samples due to proprietary code unfortunately.

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 by comparing the spring-boot-starter-gateway behavior across the reported version upgrades, focusing on requests that match /** under Spring WebFlux and the headers that differ. Reproduce the routing failure without proprietary samples, then identify the responsible change or dependency and confirm that the affected external requests match their intended routes.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.