microsoft/playwright · error · Error
${name} is not supported on ${hostPlatform}
Error message
${name} is not supported on ${hostPlatform} What it means
Thrown by Registry.executablePathOrDie when an executable has no path token for the current shortPlatform (the EXECUTABLE_PATHS table has no entry for this browser on this OS/arch). It means Playwright does not ship or know a binary location for that browser on the host platform at all, distinct from 'the binary exists but is not downloaded'.
Source
Thrown at packages/playwright-core/src/server/registry/index.ts:518
interface ExecutableImpl extends Executable {
_install?: (force: boolean) => Promise<void>;
_dependencyGroup?: DependencyGroup;
_isHermeticInstallation?: boolean;
}
export class Registry {
private _executables: ExecutableImpl[];
constructor(browsersJSON: BrowsersJSON) {
const descriptors = readDescriptors(browsersJSON);
const findExecutablePath = (dir: string, name: keyof typeof EXECUTABLE_PATHS) => {
const tokens = EXECUTABLE_PATHS[name][shortPlatform];
return tokens ? path.join(dir, ...tokens) : undefined;
};
const executablePathOrDie = (name: string, e: string | undefined, installByDefault: boolean, sdkLanguage: string) => {
if (!e)
throw new Error(`${name} is not supported on ${hostPlatform}`);
const installCommand = buildPlaywrightCLICommand(sdkLanguage, `install${installByDefault ? '' : ' ' + name}`);
if (!canAccessFile(e)) {
const currentDockerVersion = readDockerVersionSync();
const preferredDockerVersion = currentDockerVersion ? dockerVersion(currentDockerVersion.dockerImageNameTemplate) : null;
const isOutdatedDockerImage = currentDockerVersion && preferredDockerVersion && currentDockerVersion.dockerImageName !== preferredDockerVersion.dockerImageName;
const isFfmpeg = name === 'ffmpeg';
let prettyMessage;
if (isOutdatedDockerImage) {
prettyMessage = [
`Looks like Playwright was just updated to ${preferredDockerVersion.driverVersion}.`,
`Please update docker image as well.`,
`- current: ${currentDockerVersion.dockerImageName}`,
`- required: ${preferredDockerVersion.dockerImageName}`,
``,
`<3 Playwright Team`,
].join('\n');
} else if (isFfmpeg) {
prettyMessage = [View on GitHub (pinned to c8fc3bf8d3)
Solutions
- Confirm the browser is published for your platform/arch in the version's browsers.json; if not, pick a supported browser (chromium usually has the widest coverage).
- Match the Playwright/browsers version to your architecture, or run under emulation that matches a published build.
- For platform-specific builds like webkit-wsl, run on the platform they require (see errors 357/358).
Example fix
# arm64 host requesting an x64-only build -> 'is not supported on' # use chromium which is published broadly const browser = await chromium.launch();
Defensive patterns
Strategy: validation
Validate before calling
const exe = registry.findExecutable(name);
if (!exe || !exe.executablePath())
throw new Error(`${name} has no build for this platform; choose a supported browser`); Prevention
- Confirm the browser is published for your platform/arch in browsers.json.
- Default to chromium for the widest platform coverage.
- Pin Playwright and Docker image versions consistently.
When it happens
Trigger: Requesting a browser executable that is not built for the current platform/arch (e.g. a Mac-only or Windows-only build on Linux, or an arm64/x64 mismatch); using a browser descriptor whose revision dropped support for the current platform after an upgrade.
Common situations: Cross-arch containers (x64 browser list on arm64 host without emulation); upgrading Playwright to a version that no longer publishes a binary for the host; requesting a browser (e.g. webkit-wsl) outside its supported platform.
Related errors
- Unsupported platform: ${process.platform}
- Executable doesn't exist at ${e} ${wrapInASCIIBox(prettyMess
- ERROR: Playwright does not support ${descriptor.name} on ${h
- webkit-wsl is only supported on Windows
- WebKit via WSL is only supported on Windows
AI-assisted analysis of microsoft/playwright@c8fc3bf8d3 (2026-08-12).
Data as JSON: /api/errors/a9f1a72b772fc7f2.
Report an issue: GitHub.