When TCPClientSocket starts a connection, it takes an AddressList and tries each address until it finds one that works, even when not using happy eyeballs. QuicStreamFactory just takes the first address and discards the rest, so if the first address doesn't work, Chrome/Cronet won't speak QUIC. This combined with a weird configuration is causing internal bug b/35718150, and more generally would cause fallback to TCP when the problem is really with IPv6 or something else other than QUIC. It might be worth changing the behavior to check other addresses, or do something like happy eyeballs, or both.