Skip to content

[Bug]: Navigation interrupted by another navigation when launching from persistent context for second time #41216

Description

Version

1.60.0

Steps to reproduce

  1. Clone my repo at https://github.com/fwdekker-pc/playwright_python_navigation_interrupted_by_another_navigation_at_second_launch
  2. Run
    uv sync
  3. 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
  4. Ensure the directory profile does not exist:
    # EITHER
    rm -r profile
    # OR
    remove-item -recurse profile
  5. Run
    uv run -m playwright_python_navigation_interrupted_by_another_navigation_at_second_launch
    The browser will launch and then close again.
  6. 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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions