microsoft/playwright · error · Error
ERROR: Playwright does not support installing ${executable.n
Error message
ERROR: Playwright does not support installing ${executable.name} What it means
Thrown inside Registry.install when iterating the requested executables and finding one whose _install function is undefined — meaning Playwright has no installation mechanism for that executable. This guards against attempting to install tools or channels that are detection-only (installType 'none') or platform helpers like 'winldd'.
Source
Thrown at packages/playwright-core/src/server/registry/index.ts:966
factor: 1.27579,
},
onCompromised: (err: Error) => {
throw new Error(`${err.message} Path: ${lockfilePath}`);
},
lockfilePath,
});
// Create a link first, so that cache validation does not remove our own browsers.
await fs.promises.mkdir(linksDir, { recursive: true });
await fs.promises.writeFile(path.join(linksDir, calculateSha1(PACKAGE_PATH)), PACKAGE_PATH);
// Remove stale browsers.
if (options?.gc !== false && !getAsBooleanFromENV('PLAYWRIGHT_SKIP_BROWSER_GC'))
await this._validateInstallationCache(linksDir);
// Install browsers for this package.
for (const executable of executables) {
if (!executable._install)
throw new Error(`ERROR: Playwright does not support installing ${executable.name}`);
if (!getAsBooleanFromENV('CI') && !executable._isHermeticInstallation && !options?.force && executable.executablePath()) {
const { embedderName } = getEmbedderName();
const command = buildPlaywrightCLICommand(embedderName, 'install --force ' + executable.name);
// eslint-disable-next-line no-restricted-properties
process.stderr.write('\n' + wrapInASCIIBox([
`ATTENTION: "${executable.name}" is already installed on the system!`,
``,
`"${executable.name}" installation is not hermetic; installing newer version`,
`requires *removal* of a current installation first.`,
``,
`To *uninstall* current version and re-install latest "${executable.name}":`,
``,
`- Close all running instances of "${executable.name}", if any`,
`- Use "--force" to install browser:`,
``,
` ${command}`,
``,View on GitHub (pinned to c8fc3bf8d3)
Solutions
- Run 'npx playwright install' with no arguments (or 'chromium'/'firefox'/'webkit') to install only supported targets.
- Check the executable name against registry.executables() and filter out entries with installType 'none' before calling install.
- Upgrade or align Playwright so the desired executable ships an _install handler.
Defensive patterns
Strategy: validation
Validate before calling
import { registry } from 'playwright-core/lib/server/registry';
const names = process.argv.slice(2); // install targets
const installable = names.filter(n => {
const e = registry.findExecutable(n);
return e && e.installType !== 'none';
});
if (installable.length !== names.length)
throw new Error('Some targets are not installable: ' + names.filter(n => !installable.includes(n)).join(', ')); Type guard
function isInstallable(name: string): boolean {
const e = registry.findExecutable(name);
return !!e && e.installType !== 'none' && typeof (e as any)._install === 'function';
} Prevention
- Filter executables to those with installType !== 'none' before calling registry.install.
- Use suggestedBrowsersToInstall() to discover valid install targets.
- Prefer the default 'playwright install' invocation over passing exotic names.
When it happens
Trigger: Calling registry.install() (directly or via 'playwright install <name>') with an Executable whose _install is null — e.g. 'winldd', a system-detected channel with no install script, or any executable the current Playwright build marks as not installable.
Common situations: Passing a custom or deprecated executable name to the install CLI; a bug in calling code that forwards a non-installable Executable to install(); upgrading Playwright where a previously-installable item lost its _install handler.
Related errors
- Executable doesn't exist at ${e} ${wrapInASCIIBox(prettyMess
- Invalid installation targets: ${faultyArguments.map(name =>
- ${name} is not supported on ${hostPlatform}
- WebKit via WSL is only supported on Windows
- Failed to install WebKit via WSL
AI-assisted analysis of microsoft/playwright@c8fc3bf8d3 (2026-08-12).
Data as JSON: /api/errors/cb1d8c918b99accd.
Report an issue: GitHub.