Is there an existing issue for this?
Current Behavior
|
exchange.getRequest().getBody()) |
When retry is enabled (retryTimes > 0) for HTTP proxy rules, retry attempts send an empty request body to the upstream instead of the original body.
The root cause: exchange.getRequest().getBody() returns a single-use FluxReceive from Reactor Netty. After the first doRequest consumes it, the underlying ByteBufs are released. Subsequent retry subscriptions get an exhausted stream that immediately completes — the upstream receives an empty body with no error, causing silent data loss.
Expected Behavior
No response
Steps To Reproduce
No response
Environment
Debug logs
No response
Anything else?
No response
Is there an existing issue for this?
Current Behavior
shenyu/shenyu-plugin/shenyu-plugin-httpclient/src/main/java/org/apache/shenyu/plugin/httpclient/AbstractHttpClientPlugin.java
Line 80 in 6e79c7b
When retry is enabled (retryTimes > 0) for HTTP proxy rules, retry attempts send an empty request body to the upstream instead of the original body.
The root cause: exchange.getRequest().getBody() returns a single-use FluxReceive from Reactor Netty. After the first doRequest consumes it, the underlying ByteBufs are released. Subsequent retry subscriptions get an exhausted stream that immediately completes — the upstream receives an empty body with no error, causing silent data loss.
Expected Behavior
No response
Steps To Reproduce
No response
Environment
Debug logs
No response
Anything else?
No response