From abef1d095f624b8bb6aa526e755e0d7e86a7170e Mon Sep 17 00:00:00 2001 From: Neil Dorin Date: Fri, 22 May 2026 09:48:12 -0600 Subject: [PATCH] fix: prevent processing of null or empty midpoint keys in RoutingFeedbackManager --- .../Routing/RoutingFeedbackManager.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/PepperDash.Essentials.Core/Routing/RoutingFeedbackManager.cs b/src/PepperDash.Essentials.Core/Routing/RoutingFeedbackManager.cs index 16822ff2..7fe41c5c 100644 --- a/src/PepperDash.Essentials.Core/Routing/RoutingFeedbackManager.cs +++ b/src/PepperDash.Essentials.Core/Routing/RoutingFeedbackManager.cs @@ -66,6 +66,9 @@ namespace PepperDash.Essentials.Core.Routing foreach (var midpointKey in upstreamMidpoints) { + if (string.IsNullOrEmpty(midpointKey)) + continue; + if (!midpointToSinksMap.ContainsKey(midpointKey)) midpointToSinksMap[midpointKey] = new HashSet(); @@ -115,7 +118,8 @@ namespace PepperDash.Essentials.Core.Routing if (tieLine.SourcePort.ParentDevice is IRoutingWithFeedback midpoint) { - midpoints.Add(midpoint.Key); + if (!string.IsNullOrEmpty(midpoint.Key)) + midpoints.Add(midpoint.Key); // Find upstream TieLines connected to this midpoint's inputs var midpointInputs = (midpoint as IRoutingInputs)?.InputPorts; @@ -244,6 +248,9 @@ namespace PepperDash.Essentials.Core.Routing var upstreamMidpoints = GetUpstreamMidpoints(sink); foreach (var midpointKey in upstreamMidpoints) { + if (string.IsNullOrEmpty(midpointKey)) + continue; + if (!midpointToSinksMap.ContainsKey(midpointKey)) midpointToSinksMap[midpointKey] = new HashSet();