From 2b248104e61a103c4c4badf74195fc03116327aa Mon Sep 17 00:00:00 2001 From: Vikhyath Mondreti Date: Thu, 29 Jan 2026 19:01:32 -0800 Subject: [PATCH] fix more bugbot cleanup comments --- apps/sim/app/api/auth/socket-token/route.ts | 2 +- apps/sim/app/workspace/providers/socket-provider.tsx | 6 +++++- apps/sim/socket/handlers/workflow.ts | 8 ++++---- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/apps/sim/app/api/auth/socket-token/route.ts b/apps/sim/app/api/auth/socket-token/route.ts index b75c75100..85503a3af 100644 --- a/apps/sim/app/api/auth/socket-token/route.ts +++ b/apps/sim/app/api/auth/socket-token/route.ts @@ -20,6 +20,6 @@ export async function POST() { return NextResponse.json({ token: response.token }) } catch { - return NextResponse.json({ error: 'Authentication required' }, { status: 401 }) + return NextResponse.json({ error: 'Failed to generate token' }, { status: 500 }) } } diff --git a/apps/sim/app/workspace/providers/socket-provider.tsx b/apps/sim/app/workspace/providers/socket-provider.tsx index bf091974b..494c31036 100644 --- a/apps/sim/app/workspace/providers/socket-provider.tsx +++ b/apps/sim/app/workspace/providers/socket-provider.tsx @@ -208,7 +208,11 @@ export function SocketProvider({ children, user }: SocketProviderProps) { cb({ token: freshToken }) } catch (error) { logger.error('Failed to generate fresh token for connection:', error) - cb({ token: null }) + if (error instanceof Error && error.message === 'Authentication required') { + // True auth failure - pass null token, server will reject with "Authentication required" + cb({ token: null }) + } + // For server errors, don't call cb - connection will timeout and Socket.IO will retry } }, }) diff --git a/apps/sim/socket/handlers/workflow.ts b/apps/sim/socket/handlers/workflow.ts index 93b7faef9..f0d097009 100644 --- a/apps/sim/socket/handlers/workflow.ts +++ b/apps/sim/socket/handlers/workflow.ts @@ -60,6 +60,7 @@ export function setupWorkflowHandlers(socket: AuthenticatedSocket, roomManager: `Cleaning up socket ${existingUser.socketId} for user ${userId} (${isSameTab ? 'same tab' : 'stale'})` ) await roomManager.removeUserFromRoom(existingUser.socketId) + roomManager.io.in(existingUser.socketId).socketsLeave(workflowId) } } } @@ -124,10 +125,9 @@ export function setupWorkflowHandlers(socket: AuthenticatedSocket, roomManager: ) } catch (error) { logger.error('Error joining workflow:', error) - socket.emit('error', { - type: 'JOIN_ERROR', - message: 'Failed to join workflow', - }) + // Undo socket.join if addUserToRoom or subsequent operations failed + socket.leave(workflowId) + socket.emit('join-workflow-error', { error: 'Failed to join workflow' }) } })