feat: error handling browser init

This commit is contained in:
Rohit
2025-08-11 13:02:20 +05:30
parent 6d75520cdf
commit 96339f5568

View File

@@ -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`); logger.log('warn', `No client connected to browser ${id} within timeout, proceeding with dummy socket`);
resolve(null); resolve(null);
} }
}, 10000); }, 15000);
}); });
namespace.on('error', (error: any) => { namespace.on('error', (error: any) => {
@@ -272,21 +272,25 @@ const initializeBrowserAsync = async (id: string, userId: string) => {
browserSession = new RemoteBrowser(dummySocket, userId, id); browserSession = new RemoteBrowser(dummySocket, userId, id);
} }
logger.log('debug', `Starting browser initialization for ${id}`);
await browserSession.initialize(userId); await browserSession.initialize(userId);
logger.log('debug', `Browser initialization completed for ${id}`);
const upgraded = browserPool.upgradeBrowserSlot(id, browserSession); const upgraded = browserPool.upgradeBrowserSlot(id, browserSession);
if (!upgraded) { if (!upgraded) {
throw new Error('Failed to upgrade reserved browser slot'); throw new Error('Failed to upgrade reserved browser slot');
} }
await new Promise(resolve => setTimeout(resolve, 500));
if (socket) { if (socket) {
socket.emit('ready-for-run'); socket.emit('ready-for-run');
} else { } else {
setTimeout(async () => { setTimeout(async () => {
try { 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) { } 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); }, 100);
} }
@@ -299,10 +303,12 @@ const initializeBrowserAsync = async (id: string, userId: string) => {
if (socket) { if (socket) {
socket.emit('error', { message: error.message }); socket.emit('error', { message: error.message });
} }
throw error;
} }
} catch (error: any) { } catch (error: any) {
logger.log('error', `Error setting up browser ${id}: ${error.message}`); logger.log('error', `Error setting up browser ${id}: ${error.message}`);
browserPool.failBrowserSlot(id); browserPool.failBrowserSlot(id);
throw error;
} }
}; };