From 96339f556820fc5093ebd90ceec86470e5ee3580 Mon Sep 17 00:00:00 2001 From: Rohit Date: Mon, 11 Aug 2025 13:02:20 +0530 Subject: [PATCH] feat: error handling browser init --- server/src/browser-management/controller.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/server/src/browser-management/controller.ts b/server/src/browser-management/controller.ts index 3a2c31e3..1c6ecb5c 100644 --- a/server/src/browser-management/controller.ts +++ b/server/src/browser-management/controller.ts @@ -242,7 +242,7 @@ const initializeBrowserAsync = async (id: string, userId: string) => { logger.log('warn', `No client connected to browser ${id} within timeout, proceeding with dummy socket`); resolve(null); } - }, 10000); + }, 15000); }); namespace.on('error', (error: any) => { @@ -272,21 +272,25 @@ const initializeBrowserAsync = async (id: string, userId: string) => { browserSession = new RemoteBrowser(dummySocket, userId, id); } + logger.log('debug', `Starting browser initialization for ${id}`); await browserSession.initialize(userId); + logger.log('debug', `Browser initialization completed for ${id}`); const upgraded = browserPool.upgradeBrowserSlot(id, browserSession); if (!upgraded) { throw new Error('Failed to upgrade reserved browser slot'); } + await new Promise(resolve => setTimeout(resolve, 500)); + if (socket) { socket.emit('ready-for-run'); } else { setTimeout(async () => { try { - logger.log('info', `Starting execution for browser ${id} with dummy socket`); + logger.log('info', `Browser ${id} with dummy socket is ready for execution`); } catch (error: any) { - logger.log('error', `Error executing run for browser ${id}: ${error.message}`); + logger.log('error', `Error with dummy socket browser ${id}: ${error.message}`); } }, 100); } @@ -299,10 +303,12 @@ const initializeBrowserAsync = async (id: string, userId: string) => { if (socket) { socket.emit('error', { message: error.message }); } + throw error; } } catch (error: any) { logger.log('error', `Error setting up browser ${id}: ${error.message}`); browserPool.failBrowserSlot(id); + throw error; } };