diff --git a/packages/rrweb/src/record/observers/canvas/canvas-manager.ts b/packages/rrweb/src/record/observers/canvas/canvas-manager.ts index c6e29a2e47..1945725bb4 100644 --- a/packages/rrweb/src/record/observers/canvas/canvas-manager.ts +++ b/packages/rrweb/src/record/observers/canvas/canvas-manager.ts @@ -343,6 +343,9 @@ export class CanvasManager implements CanvasManagerInterface { getCanvas(canvasElement).forEach((canvas: HTMLCanvasElement) => { const id = this.mirror.getId(canvas); if (snapshotInProgressMap.get(id)) return; + // Don't do anything if canvas height/width is 0, otherwise causes + // `createImageBitmap()` to throw + if (!canvas.width || !canvas.height) return; snapshotInProgressMap.set(id, true); if ( !isManualSnapshot &&