diff --git a/sdk/rust/nym-sdk/src/error.rs b/sdk/rust/nym-sdk/src/error.rs index 2010a97659..522344b9bb 100644 --- a/sdk/rust/nym-sdk/src/error.rs +++ b/sdk/rust/nym-sdk/src/error.rs @@ -156,6 +156,12 @@ pub enum Error { #[error("no IPR address on selected gateway")] NoIPRAvailable, + + #[error("message version check failed: {0}")] + IPRMessageVersionCheckFailed(String), + + #[error("no response id found in connect response")] + IPRNoId, } impl Error { diff --git a/sdk/rust/nym-sdk/src/stream_wrapper/mixnet_stream_wrapper_ipr.rs b/sdk/rust/nym-sdk/src/stream_wrapper/mixnet_stream_wrapper_ipr.rs index e4b41fde18..6414a721fb 100644 --- a/sdk/rust/nym-sdk/src/stream_wrapper/mixnet_stream_wrapper_ipr.rs +++ b/sdk/rust/nym-sdk/src/stream_wrapper/mixnet_stream_wrapper_ipr.rs @@ -232,13 +232,16 @@ impl IpMixStream { } Some(Ok(reconstructed)) => { if let Err(e) = check_ipr_message_version(&reconstructed) { - error!("Version check failed: {}", e); - continue; + return Err(Error::IPRMessageVersionCheckFailed(e.to_string())); + } if let Ok(response) = IpPacketResponse::from_reconstructed_message(&reconstructed) { if response.id() == Some(request_id) { return self.handle_connect_response(response).await; } + else { + return Err(Error::IPRNoId) + } } } }