From e2a8f52464d236b4c3ba60a14595c41acb7d1179 Mon Sep 17 00:00:00 2001 From: Jonathan Dobson Date: Sat, 16 Aug 2025 08:59:18 -0400 Subject: [PATCH] defer flow updates to next tick (#3211) --- .../src/routes/workflows/editor/FlowRenderer.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/skyvern-frontend/src/routes/workflows/editor/FlowRenderer.tsx b/skyvern-frontend/src/routes/workflows/editor/FlowRenderer.tsx index 49c7ad4c..9c6674ef 100644 --- a/skyvern-frontend/src/routes/workflows/editor/FlowRenderer.tsx +++ b/skyvern-frontend/src/routes/workflows/editor/FlowRenderer.tsx @@ -619,12 +619,13 @@ function FlowRenderer({ ) { workflowChangesStore.setHasChanges(true); } - // throttle onNodesChange to prevent cascading React updates + // defer update to next tick to prevent max recursion errors; + // NOTE: deferring too long causes node updates to be skipped if (onNodesChangeTimeoutRef.current === null) { onNodesChange(changes); onNodesChangeTimeoutRef.current = setTimeout(() => { onNodesChangeTimeoutRef.current = null; - }, 33); // ~30fps throttle + }, 0); } }} onEdgesChange={onEdgesChange}