CASSANDRA-11464 introduced in 3.0.8+, 3.8+ changed logic of protocol error messages to be sent with the protocol version requested by the client, instead of the version that the server supports.
The driver currently uses the returned protocol version to determine what protocol version to downgrade to and reattempt connection. Because of this, the driver would retry the same protocol version and fail again.
Instead revert to logic that downgrades to tried protocol version - 1 in the case that the protocol version returned with the error is the same as the one tried, or find some other strategy.
See also 1368 for additional info.