From 07842661b9cc6db63f538f4692ac8cb416fbbd80 Mon Sep 17 00:00:00 2001 From: mfahampshire Date: Thu, 30 Oct 2025 16:25:59 +0000 Subject: [PATCH] properly fail on version checks --- sdk/rust/nym-sdk/src/error.rs | 6 ++++++ .../src/stream_wrapper/mixnet_stream_wrapper_ipr.rs | 7 +++++-- 2 files changed, 11 insertions(+), 2 deletions(-) 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) + } } } }