As I said, SBBs are fine, the problem is with the Bridge only. And I don’t see how cURL might help.
The problem is that sometimes the socket read returns 0 bytes:
var nread = await RequestStream.InnerStream.ReadAsync (
buffer.Buffer, buffer.Offset, buffer.Size, cancellationToken).ConfigureAwait (false);
if (nread == 0)
throw GetReadException (WebExceptionStatus.ReceiveFailure, null, "ReadDoneAsync2");
And only with the Bridge, not SBBs.
I might dig deeper into ReadAsync() to see why it might return 0 bytes, but not timeout.