From 95e02c28aacbf0bd23a5f5cf07accc84d3ddf290 Mon Sep 17 00:00:00 2001 From: Vikhyath Mondreti Date: Tue, 7 Apr 2026 20:37:25 -0700 Subject: [PATCH] Revert "fix(sockets): joining currently deleted workflow (#4004)" This reverts commit 609ba619bc631d0e9efc08932367fd9291f7455c. --- .../workspace/providers/socket-provider.tsx | 22 ++----------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/apps/sim/app/workspace/providers/socket-provider.tsx b/apps/sim/app/workspace/providers/socket-provider.tsx index d04cc6e0fe2..b2257280c10 100644 --- a/apps/sim/app/workspace/providers/socket-provider.tsx +++ b/apps/sim/app/workspace/providers/socket-provider.tsx @@ -166,7 +166,6 @@ export function SocketProvider({ children, user }: SocketProviderProps) { const positionUpdateTimeouts = useRef>(new Map()) const isRejoiningRef = useRef(false) const pendingPositionUpdates = useRef>(new Map()) - const deletedWorkflowIdRef = useRef(null) const generateSocketToken = async (): Promise => { const res = await fetch('/api/auth/socket-token', { @@ -372,7 +371,6 @@ export function SocketProvider({ children, user }: SocketProviderProps) { socketInstance.on('workflow-deleted', (data) => { logger.warn(`Workflow ${data.workflowId} has been deleted`) - deletedWorkflowIdRef.current = data.workflowId setCurrentWorkflowId((current) => { if (current === data.workflowId) { setPresenceUsers([]) @@ -502,11 +500,7 @@ export function SocketProvider({ children, user }: SocketProviderProps) { if (error?.type === 'SESSION_ERROR') { const workflowId = urlWorkflowIdRef.current - if ( - workflowId && - !isRejoiningRef.current && - deletedWorkflowIdRef.current !== workflowId - ) { + if (workflowId && !isRejoiningRef.current) { isRejoiningRef.current = true logger.info(`Session expired, rejoining workflow: ${workflowId}`) socketInstance.emit('join-workflow', { @@ -558,25 +552,13 @@ export function SocketProvider({ children, user }: SocketProviderProps) { const hydrationPhase = useWorkflowRegistryStore((s) => s.hydration.phase) useEffect(() => { - if (!socket || !isConnected || !urlWorkflowId) { - if (!urlWorkflowId) { - deletedWorkflowIdRef.current = null - } - return - } + if (!socket || !isConnected || !urlWorkflowId) return if (hydrationPhase === 'creating') return // Skip if already in the correct room if (currentWorkflowId === urlWorkflowId) return - // Prevent rejoining a workflow that was just deleted. The URL param may - // still reference the old workflow while router.push() propagates. - if (deletedWorkflowIdRef.current === urlWorkflowId) { - return - } - deletedWorkflowIdRef.current = null - logger.info( `URL workflow changed from ${currentWorkflowId} to ${urlWorkflowId}, switching rooms` )