From affdf0f06571fa2d01ec2d36c6cdac602d87c72f Mon Sep 17 00:00:00 2001 From: Francesco Novy Date: Thu, 10 Aug 2023 11:09:26 +0200 Subject: [PATCH] fix(replay): Fix `hasCheckout` handling 1. Make sure it is correctly kept when doing the compression worker switchover 2. Make sure it is correctly set for `session` recordings --- packages/replay/src/eventBuffer/EventBufferProxy.ts | 4 +++- packages/replay/src/util/addEvent.ts | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/replay/src/eventBuffer/EventBufferProxy.ts b/packages/replay/src/eventBuffer/EventBufferProxy.ts index 0b5a6bdfed11..eb49b7229c58 100644 --- a/packages/replay/src/eventBuffer/EventBufferProxy.ts +++ b/packages/replay/src/eventBuffer/EventBufferProxy.ts @@ -99,13 +99,15 @@ export class EventBufferProxy implements EventBuffer { /** Switch the used buffer to the compression worker. */ private async _switchToCompressionWorker(): Promise { - const { events } = this._fallback; + const { events, hasCheckout } = this._fallback; const addEventPromises: Promise[] = []; for (const event of events) { addEventPromises.push(this._compression.addEvent(event)); } + this._compression.hasCheckout = hasCheckout; + // We switch over to the new buffer immediately - any further events will be added // after the previously buffered ones this._used = this._compression; diff --git a/packages/replay/src/util/addEvent.ts b/packages/replay/src/util/addEvent.ts index 6ffd5d03bacd..e9898ee9461c 100644 --- a/packages/replay/src/util/addEvent.ts +++ b/packages/replay/src/util/addEvent.ts @@ -52,6 +52,9 @@ export async function addEvent( try { if (isCheckout && replay.recordingMode === 'buffer') { replay.eventBuffer.clear(); + } + + if (isCheckout) { replay.eventBuffer.hasCheckout = true; }