microsoft/playwright · error · Error

Navigating subframes is not supported on stock WebKit RDP —

Error message

Navigating subframes is not supported on stock WebKit RDP — only the main frame can be navigated.

What it means

Error "Navigating subframes is not supported on stock WebKit RDP — only the main frame can be navigated." thrown in microsoft/playwright.

Source

Thrown at packages/playwright-core/src/server/webkit/webview/wvPage.ts:493

  }

  private _onExecutionContextCreated(contextPayload: Protocol.Runtime.ExecutionContextDescription) {
    if (this._contextIdToContext.has(contextPayload.id))
      return;
    const frame = this._page.frameManager.frame(contextPayload.frameId);
    if (!frame)
      return;
    if (contextPayload.type !== 'normal')
      return;
    const delegate = new WVExecutionContext(this._session, contextPayload.id);
    const context = new dom.FrameExecutionContext(delegate, frame, 'main');
    frame.contextCreated('main', context);
    this._contextIdToContext.set(contextPayload.id, context);
  }

  async navigateFrame(frame: frames.Frame, url: string, referrer: string | undefined): Promise<frames.GotoResult> {
    if (frame.parentFrame())
      throw new Error('Navigating subframes is not supported on stock WebKit RDP — only the main frame can be navigated.');

    if (url.startsWith('data:'))
      return await this._navigateToDataUrl(frame, url);
    return await this._navigateMainFrame(frame, url);
  }

  private async _navigateMainFrame(frame: frames.Frame, url: string): Promise<frames.GotoResult> {
    const loaderIdPromise = new Promise<string>(resolve => {
      this._pendingMainFrameLoaderResolvers.set(frame._id, resolve);
    });
    try {
      this._session.sendMayFail('Runtime.evaluate', {
        expression: `window.location.href = ${JSON.stringify(url)}`,
        returnByValue: true,
      } as any);
      const loaderId = await loaderIdPromise;
      return { newDocumentId: loaderId };
    } finally {

View on GitHub (pinned to c8fc3bf8d3)

When it happens

Trigger: Thrown at packages/playwright-core/src/server/webkit/webview/wvPage.ts:493 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of microsoft/playwright@c8fc3bf8d3 (2026-08-12). Data as JSON: /api/errors/41d257381d557d8f. Report an issue: GitHub.