microsoft/playwright · error · Error

binding "${bindingName}" has been removed

Error message

binding "${bindingName}" has been removed

What it means

Error "binding "${bindingName}" has been removed" thrown in microsoft/playwright.

Source

Thrown at packages/injected/src/bindingsController.ts:57

    this._global = global;
    this._globalBindingName = globalBindingName;
  }

  addBinding(bindingName: string, noGlobal?: boolean) {
    const data: BindingData = {
      callbacks: new Map(),
      lastSeq: 0,
      removed: false,
    };
    this._bindings.set(bindingName, data);
    if (!noGlobal)
      (this._global as any)[bindingName] = (...args: any[]) => this.callBinding(bindingName, ...args);
  }

  callBinding(bindingName: string, ...args: any[]): Promise<any> {
    const data = this._bindings.get(bindingName);
    if (!data || data.removed)
      throw new Error(`binding "${bindingName}" has been removed`);
    const seq = ++data.lastSeq;
    const promise = new Promise((resolve, reject) => data.callbacks.set(seq, { resolve, reject }));
    const serializedArgs = [];
    for (let i = 0; i < args.length; i++) {
      serializedArgs[i] = serializeAsCallArgument(args[i], v => {
        return { fallThrough: v };
      });
    }
    const payload: BindingPayload = { name: bindingName, seq, serializedArgs };
    (this._global as any)[this._globalBindingName](JSON.stringify(payload));
    return promise;
  }

  parseInitScriptArg(value: SerializedValue): any {
    // Functions serialized as { fn } deserialize into wrappers
    // that route the call through this controller.
    return parseEvaluationResultValue(value);
  }

View on GitHub (pinned to c8fc3bf8d3)

When it happens

Trigger: Thrown at packages/injected/src/bindingsController.ts:57 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/f2d4aec2bf906ae4. Report an issue: GitHub.