Skip to content

[BUG] Retry sends empty request body when the original body stream is single-use #6413

Description

@eye-gu

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

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

ShenYu version(s):

Debug logs

No response

Anything else?

No response

Metadata

Metadata

Assignees

Labels

type: bugSomething isn't working

Type

No type

Fields

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