From c4b89c59ae884eaa974606ec5de651154caa1daf Mon Sep 17 00:00:00 2001 From: Tyagiquamar Date: Fri, 4 Sep 2026 23:31:06 +0530 Subject: [PATCH] fix(guard): allow path-based WebSocket requests without sec-websocket-protocol header In path-based WebSocket routing (read_gateway_token_for_path_based), if sec-websocket-protocol header is absent, return Ok(None) instead of failing with MissingHeader error. This allows path-based WebSocket connections (e.g. Hub UI inspector console) to connect without requiring a token header. Signed-off-by: Tyagiquamar --- .../guard/src/routing/pegboard_gateway/mod.rs | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/engine/packages/guard/src/routing/pegboard_gateway/mod.rs b/engine/packages/guard/src/routing/pegboard_gateway/mod.rs index 716b9f4305..29326dea0b 100644 --- a/engine/packages/guard/src/routing/pegboard_gateway/mod.rs +++ b/engine/packages/guard/src/routing/pegboard_gateway/mod.rs @@ -905,16 +905,13 @@ fn read_gateway_token_for_path_based<'a>( } if req_ctx.is_websocket() { - let protocols_header = req_ctx + let Some(protocols_header) = req_ctx .headers() .get(SEC_WEBSOCKET_PROTOCOL) .and_then(|protocols| protocols.to_str().ok()) - .ok_or_else(|| { - crate::errors::MissingHeader { - header: "sec-websocket-protocol".to_string(), - } - .build() - })?; + else { + return Ok(None); + }; let protocols = protocols_header .split(',')