Skip to content

Commit 81090de

Browse files
committed
fix baggage order
1 parent 7d403dd commit 81090de

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

packages/node/src/integrations/http/SentryHttpInstrumentation.ts

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -604,18 +604,27 @@ function getAbsoluteUrl(origin: string, path: string = '/'): string {
604604
}
605605

606606
function mergeBaggageHeaders(
607-
existing: string | string[] | number | null | undefined | boolean,
607+
existing: string | string[] | number | undefined,
608608
baggage: string,
609-
): string | undefined {
609+
): string | string[] | number | undefined {
610610
if (!existing) {
611611
return baggage;
612612
}
613613

614614
const existingBaggageEntries = parseBaggageHeader(existing);
615615
const newBaggageEntries = parseBaggageHeader(baggage);
616616

617-
// Existing entries take precedence
618-
const mergedBaggageEntries = { ...newBaggageEntries, ...existingBaggageEntries };
617+
if (!newBaggageEntries) {
618+
return existing;
619+
}
620+
621+
// Existing entries take precedence, ensuring order remains stable for minimal changes
622+
const mergedBaggageEntries = { ...existingBaggageEntries };
623+
Object.entries(newBaggageEntries).forEach(([key, value]) => {
624+
if (!mergedBaggageEntries[key]) {
625+
mergedBaggageEntries[key] = value;
626+
}
627+
});
619628

620629
return objectToBaggageHeader(mergedBaggageEntries);
621630
}

0 commit comments

Comments
 (0)