diff --git a/packages/replay-internal/src/coreHandlers/handleGlobalEvent.ts b/packages/replay-internal/src/coreHandlers/handleGlobalEvent.ts index a13f4d24827e..d0ea607e1c06 100644 --- a/packages/replay-internal/src/coreHandlers/handleGlobalEvent.ts +++ b/packages/replay-internal/src/coreHandlers/handleGlobalEvent.ts @@ -14,8 +14,8 @@ import { shouldSampleForBufferEvent } from './util/shouldSampleForBufferEvent'; export function handleGlobalEventListener(replay: ReplayContainer): (event: Event, hint: EventHint) => Event | null { return Object.assign( (event: Event, hint: EventHint) => { - // Do nothing if replay has been disabled - if (!replay.isEnabled()) { + // Do nothing if replay has been disabled or paused + if (!replay.isEnabled() || replay.isPaused()) { return event; } diff --git a/packages/replay-internal/test/integration/coreHandlers/handleGlobalEvent.test.ts b/packages/replay-internal/test/integration/coreHandlers/handleGlobalEvent.test.ts index 2c41dbfbfd62..9e888568d04d 100644 --- a/packages/replay-internal/test/integration/coreHandlers/handleGlobalEvent.test.ts +++ b/packages/replay-internal/test/integration/coreHandlers/handleGlobalEvent.test.ts @@ -397,4 +397,23 @@ describe('Integration | coreHandlers | handleGlobalEvent', () => { expect(handleGlobalEventListener(replay)(errorEvent, {})).toEqual(errorEvent); }); + + it('does not add replayId if replay is paused', async () => { + const transaction = Transaction(); + const error = Error(); + + replay['_isPaused'] = true; + + expect(handleGlobalEventListener(replay)(transaction, {})).toEqual( + expect.not.objectContaining({ + // no tags at all here by default + tags: expect.anything(), + }), + ); + expect(handleGlobalEventListener(replay)(error, {})).toEqual( + expect.objectContaining({ + tags: expect.not.objectContaining({ replayId: expect.anything() }), + }), + ); + }); });