From d09e7a296d3a16589dd3dea89f02ac7b7c38f18a Mon Sep 17 00:00:00 2001 From: durch Date: Tue, 16 Dec 2025 18:11:52 +0100 Subject: [PATCH] Return error on session unavailable in handle_subsession_packet Replace .session().ok() with proper error handling to fail fast when session is Closed or Processing after state machine processing. Previously, the code silently continued with outer_key = None, which could cause protocol errors downstream. Closes: nym-8de0 --- gateway/src/node/lp_listener/handler.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gateway/src/node/lp_listener/handler.rs b/gateway/src/node/lp_listener/handler.rs index 770bba68c2..9052183b17 100644 --- a/gateway/src/node/lp_listener/handler.rs +++ b/gateway/src/node/lp_listener/handler.rs @@ -453,8 +453,8 @@ impl LpConnectionHandler { // Get outer key before releasing borrow let outer_key = state_machine .session() - .ok() - .and_then(|s| s.outer_aead_key()); + .map_err(|e| GatewayError::LpProtocolError(format!("Session unavailable after processing: {}", e)))? + .outer_aead_key(); drop(state_entry); match action {