{"record":{"id":"3c38e94a7da473a3","repo":"microsoft/playwright","slug":"unsupported-this-name-channel-options-chann","errorCode":null,"errorMessage":"Unsupported ${this._name} channel \"${options.channel}\"","messagePattern":"Unsupported (.+?) channel \"(.+?)\"","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/playwright-core/src/server/browserType.ts","lineNumber":191,"sourceCode":"    }\n    await this.prepareUserDataDir(options, userDataDir);\n\n    const browserArguments: string[] = [];\n    if (ignoreAllDefaultArgs)\n      browserArguments.push(...args);\n    else if (ignoreDefaultArgs)\n      browserArguments.push(...(await this.defaultArgs(options, isPersistent, userDataDir)).filter(arg => ignoreDefaultArgs.indexOf(arg) === -1));\n    else\n      browserArguments.push(...await this.defaultArgs(options, isPersistent, userDataDir));\n\n    let executable: string;\n    const customExecutablePath = await this.resolveExecutablePath(options);\n    if (customExecutablePath) {\n      executable = customExecutablePath;\n    } else {\n      const registryExecutable = registry.findExecutable(this.getExecutableName(options));\n      if (!registryExecutable || registryExecutable.browserName !== this._name)\n        throw new Error(`Unsupported ${this._name} channel \"${options.channel}\"`);\n      executable = registryExecutable.executablePathOrDie(this.attribution.playwright.options.sdkLanguage);\n      await registry.validateHostRequirementsForExecutablesIfNeeded([registryExecutable], this.attribution.playwright.options.sdkLanguage);\n    }\n\n    return { executable, browserArguments, userDataDir, artifactsDir, tempDirectories };\n  }\n\n  private async _launchProcess(progress: Progress, options: types.LaunchOptions, isPersistent: boolean, browserLogsCollector: RecentLogsCollector, userDataDir?: string): Promise<{ browserProcess: BrowserProcess, artifactsDir: string, userDataDir: string, transport: ConnectionTransport, wsEndpoint?: string }> {\n    const {\n      handleSIGINT = true,\n      handleSIGTERM = true,\n      handleSIGHUP = true,\n    } = options;\n\n    const env = options.env ? envArrayToObject(options.env) : process.env;\n    const prepared = await progress.race(this._prepareToLaunch(options, isPersistent, userDataDir));\n\n    // Note: it is important to define these variables before launchProcess, so that we don't get","sourceCodeStart":173,"sourceCodeEnd":209,"githubUrl":"https://github.com/microsoft/playwright/blob/c8fc3bf8d31542d59b4d4d9eaab1df93ff541dc6/packages/playwright-core/src/server/browserType.ts#L173-L209","documentation":"Thrown in _prepareExecutable / args preparation when options.executablePath is unset and the registry lookup for the channel/browser returns no executable whose browserName matches this._name. The channel name resolved to something that is not installed for this browser type.","triggerScenarios":"chromium.launch({ channel: 'chrome' }) on a machine where the 'chrome' channel executable is not installed/registered; or using a channel that does not exist in the bundled registry for the current browser type.","commonSituations":"Running on CI without 'npx playwright install chrome' / 'chromium'. Channel typo. OS where the named channel (e.g. 'msedge') is not present.","solutions":["Install the channel: run 'npx playwright install chrome' (or 'msedge', 'chromium') for the browser you launch.","Drop the channel option to fall back to the bundled browser, or set executablePath explicitly to a known binary.","Verify the channel string is one of the supported channel names for this browserType."],"exampleFix":"// before\nconst b = await chromium.launch({ channel: 'chrome' });\n// after\n// shell: npx playwright install chrome\nconst b = await chromium.launch({ channel: 'chrome' });\n// or omit channel:\nconst b = await chromium.launch();","handlingStrategy":"validation","validationCode":"import { registry } from 'playwright-core/lib/server';\n// Or at runtime, probe before launch:\nasync function ensureChannel(browserType: any, channel: string) {\n  // 'playwright install' must have been run; assert via executablePath fallback\n  try {\n    await browserType.launch({ channel });\n  } catch (e) {\n    throw new Error(`Channel '${channel}' unavailable; run: npx playwright install ${channel}`);\n  }\n}","typeGuard":"const SUPPORTED_CHANNELS = ['chrome', 'chrome-beta', 'chrome-dev', 'chrome-canary', 'msedge', 'msedge-beta', 'msedge-dev', 'msedge-canary'];\nfunction isKnownChannel(ch?: string): boolean {\n  return !!ch && SUPPORTED_CHANNELS.includes(ch);\n}","tryCatchPattern":null,"preventionTips":["Run 'npx playwright install <channel>' as part of CI provisioning.","Validate the channel name against the supported list before calling launch."],"tags":["launch","channel","browser-binary","chromium"],"backgroundTag":null,"analyzedSha":"c8fc3bf8d31542d59b4d4d9eaab1df93ff541dc6","analyzedAt":"2026-08-12T07:26:36.950Z","schemaVersion":2},"datasetVersion":"2026-08-12T13:17:24.610Z"}