diff --git a/packages/replay-canvas/src/canvas.ts b/packages/replay-canvas/src/canvas.ts index 5e3f5ab1b7bd..5da590a162d7 100644 --- a/packages/replay-canvas/src/canvas.ts +++ b/packages/replay-canvas/src/canvas.ts @@ -73,7 +73,20 @@ export const _replayCanvasIntegration = ((options: Partial enableManualSnapshot, recordCanvas: true, getCanvasManager: (options: CanvasManagerOptions) => { - const manager = new CanvasManager({ ...options, enableManualSnapshot }); + const manager = new CanvasManager({ + ...options, + enableManualSnapshot, + errorHandler: (err: unknown) => { + try { + if (typeof err === 'object') { + (err as Error & { __rrweb__?: boolean }).__rrweb__ = true; + } + } catch (error) { + // ignore errors here + // this can happen if the error is frozen or does not allow mutation for other reasons + } + }, + }); canvasManagerResolve(manager); return manager; },