From 580704a186912825bb5ca5326e154fa03b2bbdec Mon Sep 17 00:00:00 2001 From: Volodymyr Kasaraba Date: Mon, 27 Apr 2026 20:24:19 -0400 Subject: [PATCH 1/4] reload page if browser window id not found and try again --- packages/narada/src/narada/client.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/narada/src/narada/client.py b/packages/narada/src/narada/client.py index 354a690..209dc15 100644 --- a/packages/narada/src/narada/client.py +++ b/packages/narada/src/narada/client.py @@ -287,7 +287,7 @@ async def _initialize_cloud_browser_window( for attempt in range(max_attempts): try: browser_window_id = await self._wait_for_browser_window_id( - initialization_page, config + initialization_page, config, timeout=8_000, ) break except NaradaExtensionMissingError: @@ -295,6 +295,11 @@ async def _initialize_cloud_browser_window( raise logging.info("Waiting for Narada extension to be installed...") await asyncio.sleep(1) + except NaradaTimeoutError: + if attempt == max_attempts - 1: + raise + initialization_page.reload() + await asyncio.sleep(1) cloud_window = CloudBrowserWindow( browser_window_id=browser_window_id, From 031db9f445e5ca471ec6f12b2fef4dafa407f921 Mon Sep 17 00:00:00 2001 From: Volodymyr Kasaraba Date: Tue, 28 Apr 2026 13:23:40 -0400 Subject: [PATCH 2/4] reload page if browser window id not found --- packages/narada/src/narada/client.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/narada/src/narada/client.py b/packages/narada/src/narada/client.py index 209dc15..9b0be05 100644 --- a/packages/narada/src/narada/client.py +++ b/packages/narada/src/narada/client.py @@ -283,11 +283,11 @@ async def _initialize_cloud_browser_window( # Wait for browser window ID. The extension can take a bit to be installed, so we retry a # few times. - max_attempts = 5 + max_attempts = 10 for attempt in range(max_attempts): try: browser_window_id = await self._wait_for_browser_window_id( - initialization_page, config, timeout=8_000, + initialization_page, config, timeout=4_000, ) break except NaradaExtensionMissingError: @@ -298,9 +298,11 @@ async def _initialize_cloud_browser_window( except NaradaTimeoutError: if attempt == max_attempts - 1: raise - initialization_page.reload() + # If browser window ID is not found, reload the page and try again + await initialization_page.reload() await asyncio.sleep(1) + cloud_window = CloudBrowserWindow( browser_window_id=browser_window_id, session_id=session_id, From 9932aac5f89664277b2b2b1268433167dbd87edc Mon Sep 17 00:00:00 2001 From: Volodymyr Kasaraba Date: Tue, 28 Apr 2026 13:24:28 -0400 Subject: [PATCH 3/4] formatting upd --- packages/narada/src/narada/client.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/narada/src/narada/client.py b/packages/narada/src/narada/client.py index 9b0be05..b4fc379 100644 --- a/packages/narada/src/narada/client.py +++ b/packages/narada/src/narada/client.py @@ -287,7 +287,9 @@ async def _initialize_cloud_browser_window( for attempt in range(max_attempts): try: browser_window_id = await self._wait_for_browser_window_id( - initialization_page, config, timeout=4_000, + initialization_page, + config, + timeout=4_000, ) break except NaradaExtensionMissingError: @@ -302,7 +304,6 @@ async def _initialize_cloud_browser_window( await initialization_page.reload() await asyncio.sleep(1) - cloud_window = CloudBrowserWindow( browser_window_id=browser_window_id, session_id=session_id, From 47b6d132a92bd3272089750d72125172489d0c29 Mon Sep 17 00:00:00 2001 From: Volodymyr Kasaraba Date: Tue, 28 Apr 2026 13:27:52 -0400 Subject: [PATCH 4/4] remove unneded sleep --- packages/narada/src/narada/client.py | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/narada/src/narada/client.py b/packages/narada/src/narada/client.py index b4fc379..166e429 100644 --- a/packages/narada/src/narada/client.py +++ b/packages/narada/src/narada/client.py @@ -302,7 +302,6 @@ async def _initialize_cloud_browser_window( raise # If browser window ID is not found, reload the page and try again await initialization_page.reload() - await asyncio.sleep(1) cloud_window = CloudBrowserWindow( browser_window_id=browser_window_id,