If RetryWithoutAltSvc is enabled and a request fails with QUIC_PROTOCOL_ERROR, we resend it over TCP. As a result, you would naïvely expect it to eliminated QUIC_PROTOCOL_ERROR, but that's not what we see. We should understand why this happens.
Part of this is probably requests which can not be retried, as per this comment in http_network_transaction.cc:
// This method determines whether it is safe to resend the request after an
// IO error. It can only be called in response to request header or body
// write errors or response header read errors. It should not be used in
// other cases, such as a Connect error.
int HttpNetworkTransaction::HandleIOError(int error) {
But we should confirm this.
Comment 1 by benhenry@chromium.org
, Aug 3