Skip to content

[Bug]: Playwright 1.56.1 not able to install chromium for Debian 12.12 #38334

@marrs

Description

@marrs

Version

1.56.1

Steps to reproduce

(From my project dir)

  1. npm exec playwright uninstall
  2. npm exec playwright install chromium
$ npm exec playwright install chromium
Downloading Chromium 141.0.7390.37 (playwright build v1194) from https://cdn.playwright.dev/dbazure/download/playwright/builds/chromium/1194/chromium-linux.zip
Chromium 141.0.7390.37 (playwright build v1194) downloaded to $HOME/.cache/ms-playwright/chromium-1194
Downloading Chromium Headless Shell 141.0.7390.37 (playwright build v1194) from https://cdn.playwright.dev/dbazure/download/playwright/builds/chromium/1194/chromium-headless-shell-linux.zip
Chromium Headless Shell 141.0.7390.37 (playwright build v1194) downloaded to $HOME/.cache/ms-playwright/chromium_headless_shell-1194
Playwright Host validation warning:
╔══════════════════════════════════════════════════════╗
║ Host system is missing dependencies to run browsers. ║
║ Missing libraries:                                   ║
║     libglib-2.0.so.0                                 ║
║     libgobject-2.0.so.0                              ║
║     libnspr4.so                                      ║
║     libnss3.so                                       ║
║     libnssutil3.so                                   ║
║     libsmime3.so                                     ║
║     libgio-2.0.so.0                                  ║
║     libdbus-1.so.3                                   ║
║     libatk-1.0.so.0                                  ║
║     libatk-bridge-2.0.so.0                           ║
║     libcups.so.2                                     ║
║     libexpat.so.1                                    ║
║     libxcb.so.1                                      ║
║     libxkbcommon.so.0                                ║
║     libatspi.so.0                                    ║
║     libX11.so.6                                      ║
║     libXcomposite.so.1                               ║
║     libXdamage.so.1                                  ║
║     libXext.so.6                                     ║
║     libXfixes.so.3                                   ║
║     libXrandr.so.2                                   ║
║     libgbm.so.1                                      ║
║     libcairo.so.2                                    ║
║     libpango-1.0.so.0                                ║
║     libudev.so.1                                     ║
║     libasound.so.2                                   ║
╚══════════════════════════════════════════════════════╝
    at validateDependenciesLinux ($PRJDIR/node_modules/playwright-core/lib/server/registry/dependencies.js:269:9)
    at async Registry._validateHostRequirements ($PRJDIR/node_modules/playwright-core/lib/server/registry/index.js:961:14)
    at async Registry._validateHostRequirementsForExecutableIfNeeded ($PRJDIR/node_modules/playwright-core/lib/server/registry/index.js:1083:7)
    at async Registry.validateHostRequirementsForExecutablesIfNeeded ($PRJDIR/node_modules/playwright-core/lib/server/registry/index.js:1072:7)
    at async i.<anonymous> ($PRJDIR/node_modules/playwright-core/lib/cli/program.js:217:7)

Expected behavior

I expect Chromium to be successfully installed and linked to relevant deps (wherever they are sourced from).

Actual behavior

Dependencies are claimed to be missing, although they appear to be installed.

Additional context

I've tried installing dependencies with $ npm exec playwright install-deps chromium

This reports that all deps are present and correct:

libasound2 is already the newest version (1.2.8-1+b1).
libatk-bridge2.0-0 is already the newest version (2.46.0-5).
libatk1.0-0 is already the newest version (2.46.0-5).
libatspi2.0-0 is already the newest version (2.46.0-5).
libcairo2 is already the newest version (1.16.0-7).
libcups2 is already the newest version (2.4.2-3+deb12u9).
libdbus-1-3 is already the newest version (1.14.10-1~deb12u1).
libdrm2 is already the newest version (2.4.114-1+b1).
libgbm1 is already the newest version (22.3.6-1+deb12u1).
libglib2.0-0 is already the newest version (2.74.6-2+deb12u7).
libnspr4 is already the newest version (2:4.35-1).
libnss3 is already the newest version (2:3.87.1-1+deb12u1).
libpango-1.0-0 is already the newest version (1.50.12+ds-1).
libx11-6 is already the newest version (2:1.8.4-2+deb12u2).
libxcb1 is already the newest version (1.15-1).
libxcomposite1 is already the newest version (1:0.4.5-1).
libxdamage1 is already the newest version (1:1.1.6-1).
libxext6 is already the newest version (2:1.3.4-1+b1).
libxfixes3 is already the newest version (1:6.0.0-2).
libxkbcommon0 is already the newest version (1.5.0-1).
libxrandr2 is already the newest version (2:1.5.2-2+b1).
xvfb is already the newest version (2:21.1.7-3+deb12u11).
fonts-noto-color-emoji is already the newest version (2.042-0+deb12u1).
fonts-unifont is already the newest version (1:15.0.01-2).
libfontconfig1 is already the newest version (2.14.1-4).
libfreetype6 is already the newest version (2.12.1+dfsg-5+deb12u4).
xfonts-scalable is already the newest version (1:1.0.3-1.3).
fonts-liberation is already the newest version (1:1.07.4-11).
fonts-ipafont-gothic is already the newest version (00303-23).
fonts-wqy-zenhei is already the newest version (0.9.45-8).
fonts-tlwg-loma-otf is already the newest version (1:0.7.3-1).
fonts-freefont-ttf is already the newest version (20120503-10).

I've also tried running the test suite anyway using the following minimal file:

import path from "node:path"

import { chromium } from "@playwright/test"

export default async function globalSetup() {
  const browser = await chromium.launch()
  const context = await browser.newContext()
  await browser.close()
}

This fails at the chromium.launch() line with the same "dependency missing" error as above.

I use nix to manage some dependencies on this system, and I wonder if Playwright may be observing the /nix directory on my system (or observing Nix in some other way) and from that falsely deducing that my system is NixOS, and therefore looking in the wrong location for system dependencies; but I don't know a practical way to test this theory.

Environment

System:
    OS: Linux 6.1 Debian GNU/Linux 12 (bookworm) 12 (bookworm)
    CPU: (16) x64 AMD Ryzen 7 PRO 5850U with Radeon Graphics
    Memory: 23.34 GB / 30.18 GB
    Container: Yes
  Binaries:
    Node: 22.18.0 - /nix/store/9d235766g7alzlalw4z8yqxql0jl2mgd-nodejs-22.18.0/bin/node
    npm: 10.9.3 - /nix/store/9d235766g7alzlalw4z8yqxql0jl2mgd-nodejs-22.18.0/bin/npm
  Languages:
    Bash: 5.3.3 - /nix/store/4bacfs7zrg714ffffbjp57nsvcz6zfkq-bash-5.3p3/bin/bash
  npmPackages:
    @playwright/test: ^1.55.1 => 1.56.1
    playwright: ^1.53.1 => 1.56.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions