microsoft/playwright · error · Error
Cannot take screenshot larger than 32767 pixels on any dimen
Error message
Cannot take screenshot larger than 32767 pixels on any dimension
What it means
Error "Cannot take screenshot larger than 32767 pixels on any dimension" thrown in microsoft/playwright.
Source
Thrown at packages/playwright-core/src/server/webkit/webview/wvPage.ts:776
expression: 'window.close()',
emulateUserGesture: true,
} as any);
this._session.connection.close();
}
async setBackgroundColor(color?: { r: number; g: number; b: number; a: number; }): Promise<void> {
throw new Error('Method not implemented');
}
private validateScreenshotDimension(side: number, omitDeviceScaleFactor: boolean) {
// Cairo based implementations (Linux and Windows) have hard limit of 32767
// (see https://github.com/microsoft/playwright/issues/16727).
if (process.platform === 'darwin')
return;
if (!omitDeviceScaleFactor && this._page.browserContext._options.deviceScaleFactor)
side = Math.ceil(side * this._page.browserContext._options.deviceScaleFactor);
if (side > 32767)
throw new Error('Cannot take screenshot larger than 32767 pixels on any dimension');
}
async takeScreenshot(progress: Progress, format: string, documentRect: types.Rect | undefined, viewportRect: types.Rect | undefined, quality: number | undefined, fitsViewport: boolean, scale: 'css' | 'device'): Promise<Buffer> {
const rect = (documentRect || viewportRect)!;
const omitDeviceScaleFactor = scale === 'css';
if (omitDeviceScaleFactor)
throw new Error('css screenshots are not implemented');
this.validateScreenshotDimension(rect.width, omitDeviceScaleFactor);
this.validateScreenshotDimension(rect.height, omitDeviceScaleFactor);
const result = await progress.race(this._session.send('Page.snapshotRect', { ...rect, coordinateSystem: documentRect ? 'Page' : 'Viewport' }));
const prefix = 'data:image/png;base64,';
let buffer: Buffer = Buffer.from(result.dataURL.substr(prefix.length), 'base64');
if (format === 'jpeg') {
buffer = jpegjs.encode(PNG.sync.read(buffer), quality).data;
} else if (format === 'webp') {
const png = PNG.sync.read(buffer);
// Match the native WebKit encoder: webp quality 100 (or omitted) is lossless.
buffer = (quality === undefined || quality >= 100) ? encodeWebp(png, { lossless: true }) : encodeWebp(png, { quality });View on GitHub (pinned to c8fc3bf8d3)
When it happens
Trigger: Thrown at packages/playwright-core/src/server/webkit/webview/wvPage.ts:776 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/98d163f08f084111.
Report an issue: GitHub.