From fda055d769c3e0310fb5ceb166410592dfd87e6f Mon Sep 17 00:00:00 2001 From: Billy Vong Date: Wed, 15 Oct 2025 18:05:59 -0400 Subject: [PATCH 1/2] feat(replay): Record outcome when event buffer size exceeded Change to record an outcome when failed to add to replay event buffer due to size limitations. This also moves up the `internal_sdk_error` outcome to be recorded before we stop the replay. Note we use the `buffer_overflow` outcome as it is the closest in meaning (source https://github.com/getsentry/snuba/blob/6c73be60716c2fb1c30ca627883207887c733cbd/rust_snuba/src/processors/outcomes.rs#L39) --- packages/replay-internal/src/util/addEvent.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/replay-internal/src/util/addEvent.ts b/packages/replay-internal/src/util/addEvent.ts index a133d9de6303..0cd76227379c 100644 --- a/packages/replay-internal/src/util/addEvent.ts +++ b/packages/replay-internal/src/util/addEvent.ts @@ -83,6 +83,14 @@ async function _addEvent( } catch (error) { const isExceeded = error && error instanceof EventBufferSizeExceededError; const reason = isExceeded ? 'addEventSizeExceeded' : 'addEvent'; + const client = getClient(); + + if (client) { + // We are limited in the drop reasons: + // https://github.com/getsentry/snuba/blob/6c73be60716c2fb1c30ca627883207887c733cbd/rust_snuba/src/processors/outcomes.rs#L39 + const dropReason = isExceeded ? 'buffer_overflow' : 'internal_sdk_error'; + client.recordDroppedEvent(dropReason, 'replay'); + } if (isExceeded && isBufferMode) { // Clear buffer and wait for next checkout @@ -95,12 +103,6 @@ async function _addEvent( replay.handleException(error); await replay.stop({ reason }); - - const client = getClient(); - - if (client) { - client.recordDroppedEvent('internal_sdk_error', 'replay'); - } } } From 154dfc741d43bf87371bbfe9eac3b85d114b5349 Mon Sep 17 00:00:00 2001 From: Billy Vong Date: Thu, 16 Oct 2025 16:48:01 -0400 Subject: [PATCH 2/2] bump size limit --- .size-limit.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.size-limit.js b/.size-limit.js index 17e33dd7ff21..5de4268a53d6 100644 --- a/.size-limit.js +++ b/.size-limit.js @@ -75,7 +75,7 @@ module.exports = [ path: 'packages/browser/build/npm/esm/index.js', import: createImport('init', 'browserTracingIntegration', 'replayIntegration', 'replayCanvasIntegration'), gzip: true, - limit: '84 KB', + limit: '85 KB', }, { name: '@sentry/browser (incl. Tracing, Replay, Feedback)',