{"record":{"id":"6a2889b85b5bf962","repo":"microsoft/playwright","slug":"unsupported-channel-this-browserchannel","errorCode":null,"errorMessage":"Unsupported channel: \"${this._browserChannel}\"","messagePattern":"Unsupported channel: \"(.+?)\"","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"critical","filePath":"packages/playwright-core/src/tools/mcp/cdpRelay.ts","lineNumber":154,"sourceCode":"    url.searchParams.set('mcpRelayUrl', mcpRelayEndpoint);\n    const client = {\n      name: clientName,\n      // Not used anymore.\n      version: undefined,\n    };\n    url.searchParams.set('client', JSON.stringify(client));\n    url.searchParams.set('protocolVersion', this._protocolVersion.toString());\n    const token = process.env.PLAYWRIGHT_MCP_EXTENSION_TOKEN;\n    if (token)\n      url.searchParams.set('token', token);\n    const href = url.toString();\n\n    const channel = registry.isChromiumAlias(this._browserChannel) ? 'chromium' : this._browserChannel;\n    let executablePath = this._executablePath;\n    if (!executablePath) {\n      const executableInfo = registry.findExecutable(channel);\n      if (!executableInfo)\n        throw new Error(`Unsupported channel: \"${this._browserChannel}\"`);\n      executablePath = executableInfo.executablePath();\n      if (!executablePath)\n        throw new Error(`\"${this._browserChannel}\" executable not found. Make sure it is installed at a standard location.`);\n    }\n\n    const args: string[] = [];\n    // The default profile dir is not passed explicitly, the browser resolves it on its own.\n    if (this._customUserDataDir)\n      args.push(`--user-data-dir=${this._customUserDataDir}`);\n    if (this._profileDirectory)\n      args.push(`--profile-directory=${this._profileDirectory}`);\n    if (os.platform() === 'linux' && channel === 'chromium')\n      args.push('--no-sandbox');\n    args.push(href);\n    spawn(executablePath, args, {\n      windowsHide: true,\n      detached: true,\n      shell: false,","sourceCodeStart":136,"sourceCodeEnd":172,"githubUrl":"https://github.com/microsoft/playwright/blob/c8fc3bf8d31542d59b4d4d9eaab1df93ff541dc6/packages/playwright-core/src/tools/mcp/cdpRelay.ts#L136-L172","documentation":"Thrown by CdpRelay's `_openConnectPageInBrowser` when `registry.findExecutable(channel)` returns nothing for the resolved channel — i.e. the channel/browser name is not a known registry entry. The relay needs a real executable to spawn the browser that hosts the extension, so an unrecognized channel is fatal.","triggerScenarios":"Passing a `browserChannel` that is neither a Chromium alias (which normalizes to `chromium`) nor a registry-known channel (e.g. a typo like `crome`, an unbundled build name, or a channel not registered in this Playwright version).","commonSituations":"Typo in `--browser`/`PLAYWRIGHT_MCP_BROWSER`; selecting a channel that exists in a newer/older Playwright registry; environment pointing to a custom build whose channel name was not registered.","solutions":["Use a known channel name (e.g. `chrome`, `msedge`, `chromium`, `chrome-for-testing`) or pass an explicit `--executable-path`.","Upgrade/downgrade Playwright so its registry knows the channel you need.","If using a custom build, supply `executablePath` directly to bypass registry lookup."],"exampleFix":"# before\nplaywright mcp --extension --browser crome\n# after\nplaywright mcp --extension --browser chrome\n# or\nplaywright mcp --extension --executable-path /opt/my-chrome/chrome","handlingStrategy":"validation","validationCode":"import * as registry from '@tools/mcp/registry';\nfunction assertChannelSupported(channel: string) {\n  const c = registry.isChromiumAlias(channel) ? 'chromium' : channel;\n  if (!registry.findExecutable(c))\n    throw new Error(`Unsupported channel: ${channel}. Use a known channel or pass --executable-path.`);\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use a well-known channel name (chrome, msedge, chromium, chrome-for-testing).","Provide --executable-path for custom/unaligned builds.","Keep Playwright version current so the registry knows your channel."],"tags":["extension","cdp-relay","channel","registry","browser-launch"],"backgroundTag":null,"analyzedSha":"c8fc3bf8d31542d59b4d4d9eaab1df93ff541dc6","analyzedAt":"2026-08-12T07:26:36.950Z","schemaVersion":2},"datasetVersion":"2026-08-12T13:17:24.610Z"}