microsoft/playwright · warning · Error
Method not implemented.
Error message
Method not implemented.
What it means
`requestGC` on Firefox BiDi evaluates `TestUtils.gc()` in the page; if that helper is absent (Firefox build without it, or it throws), Playwright reports the feature as not implemented. Triggering garbage collection isn't supported by this browser backend.
Source
Thrown at packages/playwright-core/src/server/bidi/bidiPage.ts:454
delta: -1,
}).then(() => true).catch(() => false);
}
async goForward(): Promise<boolean> {
return await this._session.send('browsingContext.traverseHistory', {
context: this._session.sessionId,
delta: +1,
}).then(() => true).catch(() => false);
}
async requestGC(): Promise<void> {
const result = await this._session.send('script.evaluate', {
expression: 'TestUtils.gc()',
target: { context: this._session.sessionId },
awaitPromise: true,
});
if (result.type === 'exception')
throw new Error('Method not implemented.');
}
private async _onScriptMessage(event: bidi.Script.MessageParameters) {
if (event.channel !== kPlaywrightBindingChannel)
return;
const pageOrError = await this._page.waitForInitializedOrError();
if (pageOrError instanceof Error)
return;
const context = this._contextIdToContext.get(event.source.realm);
if (!context)
return;
if (event.data.type !== 'string')
return;
await this._page.onBindingCalled(event.data.value, context);
}
async addInitScript(initScript: InitScript): Promise<void> {
const { script } = await this._session.send('script.addPreloadScript', {View on GitHub (pinned to c8fc3bf8d3)
Solutions
- Gate `requestGC` by browser — only call on Chromium/WebKit
- Wrap in try/catch on Firefox and ignore 'Method not implemented'
- Restructure tests to not rely on forced GC in Firefox
Example fix
// before
await page.requestGC();
// after
const cap = page.context().browser()?.browserType().name();
if (cap !== 'firefox') await page.requestGC();
// or
try { await page.requestGC(); } catch (e) { /* unsupported on firefox */ } Defensive patterns
Strategy: try-catch
Validate before calling
const bt = context.browser()?.browserType().name();
if (bt && bt !== 'firefox') {
await page.requestGC();
} Try / catch
try {
await page.requestGC();
} catch (e) {
if (e instanceof Error && /Method not implemented/.test(e.message)) return;
throw e;
} Prevention
- Gate requestGC by browser type
- Don't make memory tests depend on forced GC under Firefox
- Treat the 'Method not implemented' message as a known unsupported-feature signal
When it happens
Trigger: Calling `page.requestGC()` (or memory/MCP tooling that invokes it) on a Firefox BiDi session where `TestUtils.gc` is unavailable, producing an exception result.
Common situations: Running memory-leak or GC-dependent tests against Firefox; cross-browser suites that call requestGC unconditionally; profiling/heap-snapshot tooling that forces GC.
Related errors
- Not implemented
- JSHandle is not a DOM node handle
- Cannot serialize result: object reference chain is too long.
- Unable to adopt element handle from a different document
- Firefox distribution '${name}' is not supported on ${process
AI-assisted analysis of microsoft/playwright@c8fc3bf8d3 (2026-08-12).
Data as JSON: /api/errors/81b66b6f0b4c525e.
Report an issue: GitHub.