Skyvern-AI/skyvern

Failures for unresolvable hostnames

ishmeals opened this issue · 0 comments

If given an unsolvable hostname, such as "http://lskjdf.al", it fails to update status in the database and consequently the UI.

skyvern-1     | 2024-07-08T15:35:59.870196Z [error    ] Failed to update status and failure reason in database. Task might going to be time_out reason=Failed to navigate to URL. URL:http://lskjdf.al, Error:net::ERR_NAME_NOT_RESOLVED at 
http://lskjdf.al/

Then, it seems to corrupt the playwright session?

skyvern-1     | Traceback (most recent call last):                                                                                                                                                                                          
skyvern-1     |   File "/app/skyvern/webeye/browser_factory.py", line 103, in create_browser_context                                                                                                                                        
skyvern-1     |     return await creator(playwright, **kwargs)                                                                                                                                                                              
skyvern-1     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                                                                                                              
skyvern-1     |   File "/app/skyvern/webeye/browser_factory.py", line 142, in _create_headful_chromium                                                                                                                                      
skyvern-1     |     browser_context = await playwright.chromium.launch_persistent_context(**browser_args)                                                                                                                                   
skyvern-1     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                                                                   
skyvern-1     |   File "/usr/local/lib/python3.11/site-packages/playwright/async_api/_generated.py", line 15075, in launch_persistent_context                                                                                               
skyvern-1     |     await self._impl_obj.launch_persistent_context(                                                                                                                                                                         
skyvern-1     |   File "/usr/local/lib/python3.11/site-packages/playwright/_impl/_browser_type.py", line 157, in launch_persistent_context                                                                                                  
skyvern-1     |     from_channel(await self._channel.send("launchPersistentContext", params)),                                                                                                                                              
skyvern-1     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                                                                                
skyvern-1     |   File "/usr/local/lib/python3.11/site-packages/playwright/_impl/_connection.py", line 63, in send                                                                                                                          
skyvern-1     |     return await self._connection.wrap_api_call(                                                                                                                                                                            
skyvern-1     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                                                                                                            
skyvern-1     |   File "/usr/local/lib/python3.11/site-packages/playwright/_impl/_connection.py", line 495, in wrap_api_call                                                                                                                
skyvern-1     |     return await cb()                                                                                                                                                                                                       
skyvern-1     |            ^^^^^^^^^^                                                                                                                                                                                                       
skyvern-1     |   File "/usr/local/lib/python3.11/site-packages/playwright/_impl/_connection.py", line 101, in inner_send                                                                                                                   
skyvern-1     |     result = next(iter(done)).result()                                                                                                                                                                                      
skyvern-1     |              ^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                                                                                                                      
skyvern-1     | playwright._impl._errors.TargetClosedError: Target page, context or browser has been closed                                                                                                                                 
skyvern-1     | Browser logs:                                                                                                                                                                                                               
skyvern-1     |                                                                                                                                                                                                                             
skyvern-1     | <launching> /root/.cache/ms-playwright/chromium-1097/chrome-linux/chrome --disable-field-trial-config --disable-background-networking --enable-features=NetworkService,NetworkServiceInProcess --disable-background-timer-th
rottling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-brow
ser-check --disable-default-apps --disable-dev-shm-usage --disable-extensions --disable-features=ImprovedCookieControls,LazyFrameLoading,GlobalMediaControls,DestroyProfileOnBrowserClose,MediaRouter,DialMediaRouteProvider,AcceptCHFrame,A
utoExpandDetailsElement,CertificateTransparencyComponentUpdater,AvoidUnnecessaryBeforeUnloadCheckSync,Translate,HttpsUpgrades,PaintHolding --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup
-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-searc
h-engine-choice-screen --no-sandbox --disable-blink-features=AutomationControlled --disk-cache-size=1 --start-maximized --user-data-dir=/data/browser --remote-debugging-pipe about:blank
skyvern-1     | <launched> pid=1229
skyvern-1     | [pid=1229][out] Opening in existing browser session.
skyvern-1     | 
skyvern-1     | The above exception was the direct cause of the following exception:
skyvern-1     | 
skyvern-1     | Traceback (most recent call last):
skyvern-1     |   File "/app/skyvern/forge/agent.py", line 242, in execute_step
skyvern-1     |     ) = await self._initialize_execution_state(task, step, workflow_run)
skyvern-1     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
skyvern-1     |   File "/app/skyvern/forge/agent.py", line 815, in _initialize_execution_state
skyvern-1     |     browser_state = await app.BROWSER_MANAGER.get_or_create_for_task(task)
skyvern-1     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
skyvern-1     |   File "/app/skyvern/webeye/browser_manager.py", line 59, in get_or_create_for_task
skyvern-1     |     browser_state = await self._create_browser_state(task.proxy_location, task.url, task.task_id)
skyvern-1     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
skyvern-1     |   File "/app/skyvern/webeye/browser_manager.py", line 33, in _create_browser_state
skyvern-1     |     ) = await BrowserContextFactory.create_browser_context(
skyvern-1     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
skyvern-1     |   File "/app/skyvern/webeye/browser_factory.py", line 107, in create_browser_context
skyvern-1     |     raise UnknownErrorWhileCreatingBrowserContext(browser_type, e) from e
skyvern-1     | skyvern.exceptions.UnknownErrorWhileCreatingBrowserContext: Unknown error while creating browser context for chromium-headful. Exception type: <class 'playwright._impl._errors.TargetClosedError'> Exception message: Targe
t page, context or browser has been closed