Disabling BWE / CapBitrateToThresholds() triggers massive internal loss with multiple consumers

Server: mediasoup@3.11.21
Client: mediasoup-client@3.7.6

Hi all,

I’m experiencing a problem with send-side bandwidth estimation and internal loss when multiple WebRTC consumers are connected.

In my setup, a constant high-bitrate H264 stream is ingested via FFmpeg using PlainRTP and consumed by several WebRTC peers. The producer’s inbound stats are perfect (0% loss), but as soon as 5 or more consumers connect, I start seeing this warning:

"webrtc::SendSideBandwidthEstimation::CapBitrateToThresholds() | Estimated available bandwidth 4674133 bps is below configured min bitrate 50000 kbps”

Shortly after that, MediaSoup logs are flooded with:

"FillRetransmissionContainer() | ignoring retransmission for a packet already resent in the last RTT ms […]”

At the same time, consumer inbound stats show a packet loss rate of ~25%, consistently for all consumers.

Despite having configured initialAvailableOutgoingBitrate, minOutgoingBitrate, and maxOutgoingBitrate generously, this behavior appears to be triggered by internal bandwidth estimation (BWE) logic.

Question:
Is there a way to fully disable BWE or prevent MediaSoup from making internal bitrate adjustments based on this estimation? In controlled environments, this behavior is highly disruptive, as it introduces internal losses where there are no real network issues.

Thanks in advance!

I noticed that when 5+ WebRTC consumers are created for a single clean RTP producer, internal packet loss increases drastically.

In the logs I see that ALR experiment and AimdRateControl are active (from libwebrtc). Could this be causing pacing or buffer mismanagement when serving multiple WebRTC consumers?

Is there a way to disable these field trials or override them via mediasoup?