From 55e0885bf8d8720f1ee835a9f07b6836d914eda5 Mon Sep 17 00:00:00 2001 From: Nathan Flurry Date: Tue, 14 Apr 2026 15:14:50 -0700 Subject: [PATCH] fix(guard): serialize gateway actor keys correctly --- .../src/routing/pegboard_gateway/resolve_actor_query.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/engine/packages/guard/src/routing/pegboard_gateway/resolve_actor_query.rs b/engine/packages/guard/src/routing/pegboard_gateway/resolve_actor_query.rs index 61b2d3def0..17f99e1401 100644 --- a/engine/packages/guard/src/routing/pegboard_gateway/resolve_actor_query.rs +++ b/engine/packages/guard/src/routing/pegboard_gateway/resolve_actor_query.rs @@ -208,7 +208,8 @@ async fn resolve_query_target_dc_label( fn serialize_actor_key(key: &[String]) -> Result { const EMPTY_KEY: &str = "/"; - const KEY_SEPARATOR: char = '/'; + const KEY_SEPARATOR: &str = "/"; + const KEY_SEPARATOR_CHAR: char = '/'; if key.is_empty() { return Ok(EMPTY_KEY.to_string()); @@ -221,11 +222,13 @@ fn serialize_actor_key(key: &[String]) -> Result { continue; } - let escaped = part.replace('\\', "\\\\").replace(KEY_SEPARATOR, "\\/"); + let escaped = part + .replace('\\', "\\\\") + .replace(KEY_SEPARATOR_CHAR, "\\/"); escaped_parts.push(escaped); } - Ok(escaped_parts.join(EMPTY_KEY)) + Ok(escaped_parts.join(KEY_SEPARATOR)) } fn is_duplicate_key_error(err: &anyhow::Error) -> bool {