Skip to content

Commit e6350d6

Browse files
authored
fix(replay): Generate uuids for replay events (#6650)
Instead of using the `replay_id`, we let sentry generate uuids for the `event_id` instead. Otherwise, multiple events will have the same `event_id`, which is not ideal. This still works because right now we do not actually use the `event_id` there, but for consistency it is better to have this be unique.
1 parent 780bee4 commit e6350d6

File tree

3 files changed

+6
-8
lines changed

3 files changed

+6
-8
lines changed

packages/replay/src/replay.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -938,7 +938,7 @@ export class ReplayContainer implements ReplayContainerInterface {
938938
segment_id,
939939
};
940940

941-
const replayEvent = await getReplayEvent({ scope, client, replayId, event: baseEvent });
941+
const replayEvent = await getReplayEvent({ scope, client, event: baseEvent });
942942

943943
if (!replayEvent) {
944944
// Taken from baseclient's `_processEvent` method, where this is handled for errors/transactions
@@ -971,7 +971,7 @@ export class ReplayContainer implements ReplayContainerInterface {
971971
"replay_id": "eventId",
972972
"segment_id": 3,
973973
"platform": "javascript",
974-
"event_id": "eventId",
974+
"event_id": "generated-uuid",
975975
"environment": "production",
976976
"sdk": {
977977
"integrations": [

packages/replay/src/util/getReplayEvent.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,13 @@ import { Client, ReplayEvent } from '@sentry/types';
44
export async function getReplayEvent({
55
client,
66
scope,
7-
replayId: event_id,
87
event,
98
}: {
109
client: Client;
1110
scope: Scope;
12-
replayId: string;
1311
event: ReplayEvent;
1412
}): Promise<ReplayEvent | null> {
15-
const preparedEvent = (await prepareEvent(client.getOptions(), event, { event_id }, scope)) as ReplayEvent | null;
13+
const preparedEvent = (await prepareEvent(client.getOptions(), event, {}, scope)) as ReplayEvent | null;
1614

1715
// If e.g. a global event processor returned null
1816
if (!preparedEvent) {

packages/replay/test/unit/util/getReplayEvent.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,10 @@ describe('getReplayEvent', () => {
3333
trace_ids: ['trace-ID'],
3434
urls: ['https://sentry.io/'],
3535
replay_id: replayId,
36-
event_id: replayId,
3736
segment_id: 3,
3837
};
3938

40-
const replayEvent = await getReplayEvent({ scope, client, replayId, event });
39+
const replayEvent = await getReplayEvent({ scope, client, event });
4140

4241
expect(replayEvent).toEqual({
4342
type: 'replay_event',
@@ -48,7 +47,8 @@ describe('getReplayEvent', () => {
4847
replay_id: 'replay-ID',
4948
segment_id: 3,
5049
platform: 'javascript',
51-
event_id: 'replay-ID',
50+
// generated uuid with 32 chars
51+
event_id: expect.stringMatching(/^\w{32}$/),
5252
environment: 'production',
5353
sdk: {
5454
name: 'sentry.javascript.browser',

0 commit comments

Comments
 (0)