Version
1.60.0
Steps to reproduce
- Clone my repo at https://github.com/fwdekker-pc/playwright_python_navigation_interrupted_by_another_navigation_at_second_launch
- Run
- Run
# EITHER
uv run playwright install firefox
# OR
PLAYWRIGHT_SKIP_BROWSER_GC=1 uv run playwright install firefox
# OR
$env:PLAYWRIGHT_SKIP_BROWSER_GC=1 ; uv run playwright install firefox
- Ensure the directory
profile does not exist:
# EITHER
rm -r profile
# OR
remove-item -recurse profile
- Run
uv run -m playwright_python_navigation_interrupted_by_another_navigation_at_second_launch
The browser will launch and then close again.
- Repeat step 5.
Expected behavior
In both step 5 and step 6, the browser should launch, and after launching is complete, explicitly navigate to about:blank. After all, the main body is:
context = await p.firefox.launch_persistent_context("profile", headless=False)
await context.pages[0].goto("about:blank")
Since we're using a persistent context, the profile should be reused when launching again in step 6.
The output of step 6 should be the same as that of step 5, namely: nothing.
Actual behavior
Step 5 runs as intended. However, during step 6, an error is raised with the following message:
Page.goto: Navigation to "about:blank" is interrupted by another navigation to "about:blank"
Full traceback
Traceback (most recent call last):
File "<frozen runpy>", line 203, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "C:\Users\FlorineDekker\Workspace\playwright_python_navigation_interrupted_by_another_navigation_at_second_launch\src\playwright_python_navigation_interrupted_by_another_navigation_at_second_launch\__main__.py", line 12, in <module>
run(async_main())
~~~^^^^^^^^^^^^^^
File "C:\Users\FlorineDekker\AppData\Local\Python\pythoncore-3.14-64\Lib\asyncio\runners.py", line 204, in run
return runner.run(main)
~~~~~~~~~~^^^^^^
File "C:\Users\FlorineDekker\AppData\Local\Python\pythoncore-3.14-64\Lib\asyncio\runners.py", line 127, in run
return self._loop.run_until_complete(task)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
File "C:\Users\FlorineDekker\AppData\Local\Python\pythoncore-3.14-64\Lib\asyncio\base_events.py", line 719, in run_until_complete
return future.result()
~~~~~~~~~~~~~^^
File "C:\Users\FlorineDekker\Workspace\playwright_python_navigation_interrupted_by_another_navigation_at_second_launch\src\playwright_python_navigation_interrupted_by_another_navigation_at_second_launch\__main__.py", line 9, in async_main
await context.pages[0].goto("about:blank")
File "C:\Users\FlorineDekker\Workspace\playwright_python_navigation_interrupted_by_another_navigation_at_second_launch\.venv\Lib\site-packages\playwright\async_api\_generated.py", line 9611, in goto
await self._impl_obj.goto(
...<4 lines>...
)
File "C:\Users\FlorineDekker\Workspace\playwright_python_navigation_interrupted_by_another_navigation_at_second_launch\.venv\Lib\site-packages\playwright\_impl\_page.py", line 557, in goto
return await self._main_frame.goto(**locals_to_params(locals()))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\FlorineDekker\Workspace\playwright_python_navigation_interrupted_by_another_navigation_at_second_launch\.venv\Lib\site-packages\playwright\_impl\_frame.py", line 156, in goto
await self._channel.send(
"goto", self._navigation_timeout, locals_to_params(locals())
)
File "C:\Users\FlorineDekker\Workspace\playwright_python_navigation_interrupted_by_another_navigation_at_second_launch\.venv\Lib\site-packages\playwright\_impl\_connection.py", line 69, in send
return await self._connection.wrap_api_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<3 lines>...
)
^
File "C:\Users\FlorineDekker\Workspace\playwright_python_navigation_interrupted_by_another_navigation_at_second_launch\.venv\Lib\site-packages\playwright\_impl\_connection.py", line 559, in wrap_api_call
raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None
playwright._impl._errors.Error: Page.goto: Navigation to "about:blank" is interrupted by another navigation to "about:blank"
Call log:
- navigating to "about:blank", waiting until "load"
Additional context
- This bug does not occur when using Chromium.
- This bug does not occur when using Firefox' headless mode.
- This bug started occurring in v1.60.0. This bug was not present in v1.59.0.
- This bug does not occur if you navigate to any page other than
about:blank directly after launch
Environment
- Operating System: Windows 11 25H2
- CPU: x64
- Browser: Firefox
- Python Version: 3.14
Version
1.60.0
Steps to reproduce
profiledoes not exist:Expected behavior
In both step 5 and step 6, the browser should launch, and after launching is complete, explicitly navigate to
about:blank. After all, the main body is:Since we're using a persistent context, the profile should be reused when launching again in step 6.
The output of step 6 should be the same as that of step 5, namely: nothing.
Actual behavior
Step 5 runs as intended. However, during step 6, an error is raised with the following message:
Page.goto: Navigation to "about:blank" is interrupted by another navigation to "about:blank"Full traceback
Additional context
about:blankdirectly after launchEnvironment