From 7d46ea179e46af195795f07954402e47818b7973 Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Thu, 10 Jul 2025 10:49:52 -0400 Subject: [PATCH 1/2] fix(browser): guard `nextHopProtocol` when adding resource spans --- packages/browser-utils/src/metrics/browserMetrics.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/browser-utils/src/metrics/browserMetrics.ts b/packages/browser-utils/src/metrics/browserMetrics.ts index e573ca441b03..756472bc1ccb 100644 --- a/packages/browser-utils/src/metrics/browserMetrics.ts +++ b/packages/browser-utils/src/metrics/browserMetrics.ts @@ -715,9 +715,13 @@ export function _addResourceSpans( attributes['url.same_origin'] = resourceUrl.includes(WINDOW.location.origin); - const { name, version } = extractNetworkProtocol(entry.nextHopProtocol); - attributes['network.protocol.name'] = name; - attributes['network.protocol.version'] = version; + // Checking for only `undefined` and `null` is intentional because it's + // valid for `nextHopProtocol` to be an empty string. + if (entry.nextHopProtocol != undefined) { + const { name, version } = extractNetworkProtocol(entry.nextHopProtocol); + attributes['network.protocol.name'] = name; + attributes['network.protocol.version'] = version; + } const startTimestamp = timeOrigin + startTime; const endTimestamp = startTimestamp + duration; From a61837f3c37fb11a12e9f3021dcadc7f143fbff2 Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Thu, 10 Jul 2025 11:34:27 -0400 Subject: [PATCH 2/2] Update packages/browser-utils/src/metrics/browserMetrics.ts Co-authored-by: Lukas Stracke --- packages/browser-utils/src/metrics/browserMetrics.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/browser-utils/src/metrics/browserMetrics.ts b/packages/browser-utils/src/metrics/browserMetrics.ts index 756472bc1ccb..18b274b855e0 100644 --- a/packages/browser-utils/src/metrics/browserMetrics.ts +++ b/packages/browser-utils/src/metrics/browserMetrics.ts @@ -717,7 +717,7 @@ export function _addResourceSpans( // Checking for only `undefined` and `null` is intentional because it's // valid for `nextHopProtocol` to be an empty string. - if (entry.nextHopProtocol != undefined) { + if (entry.nextHopProtocol != null) { const { name, version } = extractNetworkProtocol(entry.nextHopProtocol); attributes['network.protocol.name'] = name; attributes['network.protocol.version'] = version;