From 24921a7818798a52be1baccd6d7f91df6987f0a1 Mon Sep 17 00:00:00 2001 From: Billy Vong Date: Thu, 22 Feb 2024 13:08:43 -0500 Subject: [PATCH 1/3] fix(replay): Add `errorHandler` for replayCanvas integration `errorHandler` for `CanvasManager` was added in the latest rrweb, but was not configured in our integration. --- packages/replay-canvas/src/canvas.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/replay-canvas/src/canvas.ts b/packages/replay-canvas/src/canvas.ts index 5e3f5ab1b7bd..8350d1e7a5bd 100644 --- a/packages/replay-canvas/src/canvas.ts +++ b/packages/replay-canvas/src/canvas.ts @@ -73,7 +73,18 @@ 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: Error & { __rrweb__?: boolean }) => { + try { + err.__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; }, From 7bd8aaf50dfdbeff7f52b71db74566e48d8eaaa3 Mon Sep 17 00:00:00 2001 From: Billy Vong Date: Thu, 22 Feb 2024 13:45:00 -0500 Subject: [PATCH 2/3] ts --- packages/replay-canvas/src/canvas.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/replay-canvas/src/canvas.ts b/packages/replay-canvas/src/canvas.ts index 8350d1e7a5bd..b735c1de4296 100644 --- a/packages/replay-canvas/src/canvas.ts +++ b/packages/replay-canvas/src/canvas.ts @@ -76,9 +76,11 @@ export const _replayCanvasIntegration = ((options: Partial const manager = new CanvasManager({ ...options, enableManualSnapshot, - errorHandler: (err: Error & { __rrweb__?: boolean }) => { + errorHandler: (err: unknown) => { try { - err.__rrweb__ = true; + 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 From 5c302c80d9875d518b542004663676df25066692 Mon Sep 17 00:00:00 2001 From: Billy Vong Date: Mon, 26 Feb 2024 18:46:36 -0500 Subject: [PATCH 3/3] lint --- packages/replay-canvas/src/canvas.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/replay-canvas/src/canvas.ts b/packages/replay-canvas/src/canvas.ts index b735c1de4296..5da590a162d7 100644 --- a/packages/replay-canvas/src/canvas.ts +++ b/packages/replay-canvas/src/canvas.ts @@ -79,7 +79,7 @@ export const _replayCanvasIntegration = ((options: Partial errorHandler: (err: unknown) => { try { if (typeof err === 'object') { - (err as Error & {__rrweb__?: boolean}).__rrweb__ = true; + (err as Error & { __rrweb__?: boolean }).__rrweb__ = true; } } catch (error) { // ignore errors here