Skip to content

Playwright 1.65.0 fails to start on macOS 13.2 due to bundled Node.js compatibility (Stealthy Playwright Mode) #4551

Open

Description

@mdmintz

Description

When running Playwright 1.65.0 on macOS 13.2.1 (Ventura), Playwright's bundled Node.js executable fails to start because it was built for macOS 13.5 or later.

This causes sync_playwright() to fail with a dynamic linker (dyld) error.

Environment

  • macOS: 13.2.1 (Ventura)
  • Architecture: Apple Silicon (arm64)
  • Python: 3.13
  • Playwright: 1.65.0
  • Node.js (system installation): 24.19.0

Error

dyld: Symbol not found: __ZNSt3__122__libcpp_verbose_abortEPKcz
Referenced from: .../site-packages/playwright/driver/node
(built for macOS 13.5 which is newer than running OS)
Expected in: /usr/lib/libc++.1.dylib

This subsequently causes:

Exception: Connection closed while reading from the driver.

Steps to Reproduce

  1. Use macOS 13.2.1.
  2. Install Python 3.13 and Playwright 1.65.0.
  3. Run:
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    print("Playwright started!")
  1. Observe the dyld error when Playwright attempts to launch its bundled Node.js executable.

Workaround

Using a system-installed Node.js executable resolves the issue.

For example:

export PLAYWRIGHT_NODEJS_PATH=/usr/local/bin/node

With this environment variable set, Playwright successfully starts using the system Node.js 24.19.0.

Proposed SeleniumBase Fix

Automatically set PLAYWRIGHT_NODEJS_PATH on macOS versions below 13.5.

The implementation checks the macOS version, obtains the system Node.js path using which node, and sets:

os.environ["PLAYWRIGHT_NODEJS_PATH"] = node_path

This avoids requiring users to manually configure the environment variable or upgrade macOS.

Expected Behavior

SeleniumBase should automatically configure Playwright to use the system-installed Node.js on affected macOS versions, allowing Playwright-based SeleniumBase examples and integrations to work without manual intervention.

Additional Notes

  • No changes to Playwright itself are necessary.
  • No Python or Playwright downgrade is necessary.
  • The workaround was verified on an Apple Silicon Mac running macOS 13.2.1 with Playwright 1.65.0 and Node.js 24.19.0.
  • Browser binary compatibility requirements may be separate from the Node.js driver compatibility issue.

Activity

  1. self-assigned this
    on Nov 11, 2026
  2. added
    bugUh oh... Something needs to be fixed
    workaround existsYou can reach your destination if you do this...
    UC Mode / CDP ModeUndetected Chromedriver Mode and/or CDP Mode
    on Nov 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

UC Mode / CDP ModeUndetected Chromedriver Mode and/or CDP ModebugUh oh... Something needs to be fixedworkaround existsYou can reach your destination if you do this...

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions