diff --git a/crates/net/network/src/error.rs b/crates/net/network/src/error.rs index 403aaef59f..da0bd0d87c 100644 --- a/crates/net/network/src/error.rs +++ b/crates/net/network/src/error.rs @@ -89,7 +89,13 @@ impl SessionError for EthStreamError { } fn should_backoff(&self) -> bool { - self.as_disconnected() + matches!( + self, + EthStreamError::P2PStreamError(P2PStreamError::HandshakeError( + P2PHandshakeError::NoResponse + )) + ) || self + .as_disconnected() .map(|reason| { matches!( reason, @@ -146,5 +152,10 @@ mod tests { assert_eq!(err.as_disconnected(), Some(DisconnectReason::TooManyPeers)); assert!(err.should_backoff()); + + let err = EthStreamError::P2PStreamError(P2PStreamError::HandshakeError( + P2PHandshakeError::NoResponse, + )); + assert!(err.should_backoff()); } }