From 7c2167616bddb6edadaf86e1f5c6d7de85fa5ccd Mon Sep 17 00:00:00 2001 From: Stanislav Novosad Date: Fri, 16 Jan 2026 09:55:33 -0700 Subject: [PATCH] SDK: filter out empty sessions in use_cloud_browser (#4473) --- skyvern-ts/client/src/library/Skyvern.ts | 9 +++++---- skyvern/library/skyvern.py | 9 ++++++--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/skyvern-ts/client/src/library/Skyvern.ts b/skyvern-ts/client/src/library/Skyvern.ts index d5194e93..888d7a1d 100644 --- a/skyvern-ts/client/src/library/Skyvern.ts +++ b/skyvern-ts/client/src/library/Skyvern.ts @@ -254,12 +254,13 @@ export class Skyvern extends SkyvernClient { const browserSessions = await this.getBrowserSessions(); const browserSession = browserSessions - .filter((s) => s.runnable_id == null) + .filter((s) => s.runnable_id == null && s.started_at != null && s.browser_address != null) .sort((a, b) => { - const aTime = a.started_at ? new Date(a.started_at).getTime() : 0; - const bTime = b.started_at ? new Date(b.started_at).getTime() : 0; + const aTime = new Date(a.started_at!).getTime(); + const bTime = new Date(b.started_at!).getTime(); return bTime - aTime; - })[0]; + }) + .at(0); if (!browserSession) { LOG.info("No existing cloud browser session found, launching a new session"); diff --git a/skyvern/library/skyvern.py b/skyvern/library/skyvern.py index 9111158c..33511ad8 100644 --- a/skyvern/library/skyvern.py +++ b/skyvern/library/skyvern.py @@ -529,9 +529,12 @@ class Skyvern(AsyncSkyvern): """ self._ensure_cloud_environment() browser_sessions = await self.get_browser_sessions() - browser_session = max( - (s for s in browser_sessions if s.runnable_id is None), key=lambda s: s.started_at, default=None - ) + available_sessions = [ + s + for s in browser_sessions + if s.runnable_id is None and s.started_at is not None and s.browser_address is not None + ] + browser_session = max(available_sessions, key=lambda s: s.started_at, default=None) if browser_session is None: LOG.info("No existing cloud browser session found, launching a new session") browser_session = await self.create_browser_session(