From cd5d1c0958549024450fd2766f97edb4d98fe356 Mon Sep 17 00:00:00 2001 From: Siddharth Ganesan <33737564+Sg312@users.noreply.github.com> Date: Thu, 4 Dec 2025 10:55:26 -0800 Subject: [PATCH] fix(executor): nested error activation (#2184) --- apps/sim/executor/execution/edge-manager.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/apps/sim/executor/execution/edge-manager.ts b/apps/sim/executor/execution/edge-manager.ts index 1ce766139..86fd55599 100644 --- a/apps/sim/executor/execution/edge-manager.ts +++ b/apps/sim/executor/execution/edge-manager.ts @@ -17,6 +17,7 @@ export class EdgeManager { skipBackwardsEdge = false ): string[] { const readyNodes: string[] = [] + const activatedTargets: string[] = [] for (const [edgeId, edge] of node.outgoingEdges) { if (skipBackwardsEdge && this.isBackwardsEdge(edge.sourceHandle)) { @@ -44,9 +45,14 @@ export class EdgeManager { } targetNode.incomingEdges.delete(node.id) + activatedTargets.push(edge.target) + } - if (this.isNodeReady(targetNode)) { - readyNodes.push(targetNode.id) + // Check readiness after all edges processed to ensure cascade deactivations are complete + for (const targetId of activatedTargets) { + const targetNode = this.dag.nodes.get(targetId) + if (targetNode && this.isNodeReady(targetNode)) { + readyNodes.push(targetId) } }