The Chrome browser can retry TLS connection failures. In FiddlerCore's
IClientTlsConnectionProvider::AuthenticateAsync() method first argument is NetworkStream:
public interface IClientTlsConnectionProvider
{
Task<TlsConnection> AuthenticateAsync(Stream stream, SslClientAuthenticationOptions opts);
If the TLS handshake fails, usually due to server-side issues, we cannot retry the TLS connection. This is because a new TCP connection needs to be created; reusing the socket from NetworkStream does not work, even if the socket remains connected.
Consider the option to extend
IClientTlsConnectionProvider with a new method:
Task<TlsConnection> AuthenticateAsync(string targetHost, int port, SslClientAuthenticationOptions opts);
The idea is to try a solution that implements retry logic.