Skip to content

Commit 25e0cbf

Browse files
committed
drop undefined baggage keys, only add baggage header if baggage not empty
1 parent 3f68622 commit 25e0cbf

File tree

1 file changed

+19
-10
lines changed

1 file changed

+19
-10
lines changed

packages/core/src/envelope.ts

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,14 @@ import {
1111
SessionEnvelope,
1212
SessionItem,
1313
} from '@sentry/types';
14-
import { BaggageObj, createBaggage, createEnvelope, dsnToString, serializeBaggage } from '@sentry/utils';
14+
import {
15+
BaggageObj,
16+
createBaggage,
17+
createEnvelope,
18+
dsnToString,
19+
dropUndefinedKeys,
20+
serializeBaggage,
21+
} from '@sentry/utils';
1522

1623
/** Extract sdk info from from the API metadata */
1724
function getSdkMetadataForEnvelopeHeader(metadata?: SdkMetadata): SdkInfo | undefined {
@@ -110,18 +117,20 @@ export function createEventEnvelope(
110117
};
111118

112119
if (eventType === 'transaction') {
113-
const baggage = createBaggage({
114-
environment: event.environment,
115-
release: event.release,
116-
transaction: event.transaction,
117-
userid: event.user && event.user.id,
118-
// TODO user.segment currently doesn't exist explicitly in interface User (just as a record key)
119-
usersegment: event.user && event.user.segment,
120-
} as BaggageObj);
120+
const baggage = dropUndefinedKeys(
121+
createBaggage({
122+
environment: event.environment && event.environment,
123+
release: event.release,
124+
transaction: event.transaction,
125+
userid: event.user && event.user.id,
126+
// TODO user.segment currently doesn't exist explicitly in interface User (just as a record key)
127+
usersegment: event.user && event.user.segment,
128+
} as BaggageObj),
129+
);
121130

122131
envelopeHeaders = {
123132
...envelopeHeaders,
124-
baggage: serializeBaggage(baggage),
133+
...(Object.keys(baggage[0]).length > 0 && { baggage: serializeBaggage(baggage) }),
125134
};
126135
}
127136

0 commit comments

Comments
 (0)