fix(core): Record client report with reason for HTTP 413 responses - #19093

Merged
logaretm merged 3 commits into
developfrom
awad/js-1531-sdk-handling-http-413-javascript
Jan 29, 2026
Merged

fix(core): Record client report with reason for HTTP 413 responses#19093
logaretm merged 3 commits into
developfrom
awad/js-1531-sdk-handling-http-413-javascript

Conversation

@logaretm

Copy link
Copy Markdown
Member

Implements handling of HTTP 413 (Content Too Large) responses in the base transport according to the updated SDK spec.

  • Detect 413 status code in transport response handling
  • Record client reports with send_error discard reason for all envelope items
  • Log an error message informing users that the envelope was discarded due to size limits
  • Skip rate limit updates for 413 responses (not a rate limit scenario)

Closes#18935

CopilotAI review requested due to automatic review settings January 29, 2026 16:51
@linear

linearBot commented Jan 29, 2026

Copy link
Copy Markdown

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR implements proper handling for HTTP 413 (Content Too Large) responses from Relay, aligning with the updated SDK specification. When an envelope exceeds size limits, the SDK now records client reports with the send_error discard reason and logs a clear error message for users.

Changes:

  • Added 413 status code detection in the base transport's response handler
  • Records client reports with send_error reason for all envelope items (except client reports themselves to avoid feedback loops)
  • Logs an informative error message when envelopes are rejected due to size limits
  • Ensures 413 responses don't trigger rate limiting behavior (early return before rate limit update)

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

FileDescription
packages/core/src/transports/base.tsAdded HTTP 413 status code handling with client report recording and error logging, positioned before rate limit updates
packages/core/test/lib/transports/base.test.tsAdded comprehensive test suite covering single/multi-item envelopes, client report handling, and no rate limiting verification

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@github-actions

github-actionsBot commented Jan 29, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser25.4 kB+0.19%+46 B 🔺
@sentry/browser - with treeshaking flags23.85 kB-0.02%-4 B 🔽
@sentry/browser (incl. Tracing)42.21 kB+0.1%+41 B 🔺
@sentry/browser (incl. Tracing, Profiling)46.85 kB+0.09%+42 B 🔺
@sentry/browser (incl. Tracing, Replay)80.83 kB+0.06%+46 B 🔺
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags70.44 kB-0.01%-1 B 🔽
@sentry/browser (incl. Tracing, Replay with Canvas)85.54 kB+0.06%+45 B 🔺
@sentry/browser (incl. Tracing, Replay, Feedback)97.73 kB+0.05%+46 B 🔺
@sentry/browser (incl. Feedback)42.12 kB+0.11%+45 B 🔺
@sentry/browser (incl. sendFeedback)30.09 kB+0.15%+45 B 🔺
@sentry/browser (incl. FeedbackAsync)35.08 kB+0.13%+45 B 🔺
@sentry/browser (incl. Metrics)26.5 kB+0.14%+37 B 🔺
@sentry/browser (incl. Logs)26.66 kB+0.18%+47 B 🔺
@sentry/browser (incl. Metrics & Logs)27.32 kB+0.18%+49 B 🔺
@sentry/react27.13 kB+0.16%+43 B 🔺
@sentry/react (incl. Tracing)44.45 kB+0.11%+45 B 🔺
@sentry/vue29.83 kB+0.15%+43 B 🔺
@sentry/vue (incl. Tracing)44 kB+0.1%+43 B 🔺
@sentry/svelte25.41 kB+0.19%+46 B 🔺
CDN Bundle27.94 kB+0.07%+18 B 🔺
CDN Bundle (incl. Tracing)42.98 kB+0.05%+19 B 🔺
CDN Bundle (incl. Logs, Metrics)28.78 kB+0.06%+16 B 🔺
CDN Bundle (incl. Tracing, Logs, Metrics)43.8 kB+0.05%+19 B 🔺
CDN Bundle (incl. Replay, Logs, Metrics)67.72 kB+0.04%+22 B 🔺
CDN Bundle (incl. Tracing, Replay)79.71 kB+0.03%+19 B 🔺
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)80.58 kB+0.03%+18 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback)85.16 kB+0.02%+14 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)86.09 kB+0.03%+19 B 🔺
CDN Bundle - uncompressed81.73 kB+0.05%+39 B 🔺
CDN Bundle (incl. Tracing) - uncompressed127.27 kB+0.04%+39 B 🔺
CDN Bundle (incl. Logs, Metrics) - uncompressed84.56 kB+0.05%+39 B 🔺
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed130.1 kB+0.03%+39 B 🔺
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed207.94 kB+0.02%+39 B 🔺
CDN Bundle (incl. Tracing, Replay) - uncompressed243.87 kB+0.02%+39 B 🔺
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed246.69 kB+0.02%+39 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed256.67 kB+0.02%+39 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed259.48 kB+0.02%+39 B 🔺
@sentry/nextjs (client)46.8 kB+0.08%+37 B 🔺
@sentry/sveltekit (client)42.58 kB+0.11%+43 B 🔺
@sentry/node-core52.15 kB+0.09%+46 B 🔺
@sentry/node166.16 kB+0.04%+51 B 🔺
@sentry/node - without tracing93.91 kB+0.06%+53 B 🔺
@sentry/aws-serverless109.43 kB+0.05%+49 B 🔺

View base workflow run

@github-actions

github-actionsBot commented Jan 29, 2026

Copy link
Copy Markdown
Contributor

node-overhead report 🧳

Note: This is a synthetic benchmark with a minimal express app and does not necessarily reflect the real-world performance impact in an application.

ScenarioRequests/s% of BaselinePrev. Requests/sChange %
GET Baseline8,779-9,248-5%
GET With Sentry1,55118%1,733-11%
GET With Sentry (error only)5,96268%6,010-1%
POST Baseline1,182-1,182-
POST With Sentry57549%587-2%
POST With Sentry (error only)1,03888%1,033+0%
MYSQL Baseline3,233-3,299-2%
MYSQL With Sentry38712%427-9%
MYSQL With Sentry (error only)2,59780%2,615-1%

View base workflow run

// Loss of envelope content is expected so we record a send_error client report
// https://develop.sentry.dev/sdk/expected-features/#dealing-with-network-failures
if (response.statusCode === 413) {
DEBUG_BUILD &&

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

super-l: Suggestion for a follow-up: Do you think we could save some bytes here by combining the two debug warns (the one added here and the one below)? I think we could even guard the entire if block in line 87 with DEBUG_BUILD which should shake out some more bytes. We can check that when running size checks in the PR and looking at the non-debug CDN bundles. Feel free to disregard!

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a check to treeshake the block down there, but could not refactor the message in a way that saves up some byte, since both messages will get dropped if debug is disabled.

@logaretm
logaretmforce-pushed the awad/js-1531-sdk-handling-http-413-javascript branch from 7527529 to b42a04eCompareJanuary 29, 2026 19:33
@logaretm
logaretm merged commit 8b2aff0 into developJan 29, 2026
218 checks passed
@logaretm
logaretm deleted the awad/js-1531-sdk-handling-http-413-javascript branch January 29, 2026 21:17
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

SDK Handling HTTP 413 [JavaScript]

4 participants

@logaretm@timfish@Lms24
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

fix(core): Record client report with reason for HTTP 413 responses - #19093

Merged
logaretm merged 3 commits into
developfrom
awad/js-1531-sdk-handling-http-413-javascript
Jan 29, 2026
Merged

fix(core): Record client report with reason for HTTP 413 responses#19093
logaretm merged 3 commits into
developfrom
awad/js-1531-sdk-handling-http-413-javascript

Conversation

@logaretm

Copy link
Copy Markdown
Member

Implements handling of HTTP 413 (Content Too Large) responses in the base transport according to the updated SDK spec.

  • Detect 413 status code in transport response handling
  • Record client reports with send_error discard reason for all envelope items
  • Log an error message informing users that the envelope was discarded due to size limits
  • Skip rate limit updates for 413 responses (not a rate limit scenario)

Closes#18935

CopilotAI review requested due to automatic review settings January 29, 2026 16:51
@linear

linearBot commented Jan 29, 2026

Copy link
Copy Markdown

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR implements proper handling for HTTP 413 (Content Too Large) responses from Relay, aligning with the updated SDK specification. When an envelope exceeds size limits, the SDK now records client reports with the send_error discard reason and logs a clear error message for users.

Changes:

  • Added 413 status code detection in the base transport's response handler
  • Records client reports with send_error reason for all envelope items (except client reports themselves to avoid feedback loops)
  • Logs an informative error message when envelopes are rejected due to size limits
  • Ensures 413 responses don't trigger rate limiting behavior (early return before rate limit update)

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

FileDescription
packages/core/src/transports/base.tsAdded HTTP 413 status code handling with client report recording and error logging, positioned before rate limit updates
packages/core/test/lib/transports/base.test.tsAdded comprehensive test suite covering single/multi-item envelopes, client report handling, and no rate limiting verification

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@github-actions

github-actionsBot commented Jan 29, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser25.4 kB+0.19%+46 B 🔺
@sentry/browser - with treeshaking flags23.85 kB-0.02%-4 B 🔽
@sentry/browser (incl. Tracing)42.21 kB+0.1%+41 B 🔺
@sentry/browser (incl. Tracing, Profiling)46.85 kB+0.09%+42 B 🔺
@sentry/browser (incl. Tracing, Replay)80.83 kB+0.06%+46 B 🔺
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags70.44 kB-0.01%-1 B 🔽
@sentry/browser (incl. Tracing, Replay with Canvas)85.54 kB+0.06%+45 B 🔺
@sentry/browser (incl. Tracing, Replay, Feedback)97.73 kB+0.05%+46 B 🔺
@sentry/browser (incl. Feedback)42.12 kB+0.11%+45 B 🔺
@sentry/browser (incl. sendFeedback)30.09 kB+0.15%+45 B 🔺
@sentry/browser (incl. FeedbackAsync)35.08 kB+0.13%+45 B 🔺
@sentry/browser (incl. Metrics)26.5 kB+0.14%+37 B 🔺
@sentry/browser (incl. Logs)26.66 kB+0.18%+47 B 🔺
@sentry/browser (incl. Metrics & Logs)27.32 kB+0.18%+49 B 🔺
@sentry/react27.13 kB+0.16%+43 B 🔺
@sentry/react (incl. Tracing)44.45 kB+0.11%+45 B 🔺
@sentry/vue29.83 kB+0.15%+43 B 🔺
@sentry/vue (incl. Tracing)44 kB+0.1%+43 B 🔺
@sentry/svelte25.41 kB+0.19%+46 B 🔺
CDN Bundle27.94 kB+0.07%+18 B 🔺
CDN Bundle (incl. Tracing)42.98 kB+0.05%+19 B 🔺
CDN Bundle (incl. Logs, Metrics)28.78 kB+0.06%+16 B 🔺
CDN Bundle (incl. Tracing, Logs, Metrics)43.8 kB+0.05%+19 B 🔺
CDN Bundle (incl. Replay, Logs, Metrics)67.72 kB+0.04%+22 B 🔺
CDN Bundle (incl. Tracing, Replay)79.71 kB+0.03%+19 B 🔺
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)80.58 kB+0.03%+18 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback)85.16 kB+0.02%+14 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)86.09 kB+0.03%+19 B 🔺
CDN Bundle - uncompressed81.73 kB+0.05%+39 B 🔺
CDN Bundle (incl. Tracing) - uncompressed127.27 kB+0.04%+39 B 🔺
CDN Bundle (incl. Logs, Metrics) - uncompressed84.56 kB+0.05%+39 B 🔺
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed130.1 kB+0.03%+39 B 🔺
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed207.94 kB+0.02%+39 B 🔺
CDN Bundle (incl. Tracing, Replay) - uncompressed243.87 kB+0.02%+39 B 🔺
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed246.69 kB+0.02%+39 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed256.67 kB+0.02%+39 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed259.48 kB+0.02%+39 B 🔺
@sentry/nextjs (client)46.8 kB+0.08%+37 B 🔺
@sentry/sveltekit (client)42.58 kB+0.11%+43 B 🔺
@sentry/node-core52.15 kB+0.09%+46 B 🔺
@sentry/node166.16 kB+0.04%+51 B 🔺
@sentry/node - without tracing93.91 kB+0.06%+53 B 🔺
@sentry/aws-serverless109.43 kB+0.05%+49 B 🔺

View base workflow run

@github-actions

github-actionsBot commented Jan 29, 2026

Copy link
Copy Markdown
Contributor

node-overhead report 🧳

Note: This is a synthetic benchmark with a minimal express app and does not necessarily reflect the real-world performance impact in an application.

ScenarioRequests/s% of BaselinePrev. Requests/sChange %
GET Baseline8,779-9,248-5%
GET With Sentry1,55118%1,733-11%
GET With Sentry (error only)5,96268%6,010-1%
POST Baseline1,182-1,182-
POST With Sentry57549%587-2%
POST With Sentry (error only)1,03888%1,033+0%
MYSQL Baseline3,233-3,299-2%
MYSQL With Sentry38712%427-9%
MYSQL With Sentry (error only)2,59780%2,615-1%

View base workflow run

// Loss of envelope content is expected so we record a send_error client report
// https://develop.sentry.dev/sdk/expected-features/#dealing-with-network-failures
if (response.statusCode === 413) {
DEBUG_BUILD &&

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

super-l: Suggestion for a follow-up: Do you think we could save some bytes here by combining the two debug warns (the one added here and the one below)? I think we could even guard the entire if block in line 87 with DEBUG_BUILD which should shake out some more bytes. We can check that when running size checks in the PR and looking at the non-debug CDN bundles. Feel free to disregard!

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a check to treeshake the block down there, but could not refactor the message in a way that saves up some byte, since both messages will get dropped if debug is disabled.

@logaretm
logaretmforce-pushed the awad/js-1531-sdk-handling-http-413-javascript branch from 7527529 to b42a04eCompareJanuary 29, 2026 19:33
@logaretm
logaretm merged commit 8b2aff0 into developJan 29, 2026
218 checks passed
@logaretm
logaretm deleted the awad/js-1531-sdk-handling-http-413-javascript branch January 29, 2026 21:17
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

SDK Handling HTTP 413 [JavaScript]

4 participants

@logaretm@timfish@Lms24
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(core): Record client report with reason for HTTP 413 responses - #19093

Merged
logaretm merged 3 commits into
developfrom
awad/js-1531-sdk-handling-http-413-javascript
Jan 29, 2026
Merged

fix(core): Record client report with reason for HTTP 413 responses#19093
logaretm merged 3 commits into
developfrom
awad/js-1531-sdk-handling-http-413-javascript

Conversation

@logaretm

Copy link
Copy Markdown
Member

Implements handling of HTTP 413 (Content Too Large) responses in the base transport according to the updated SDK spec.

  • Detect 413 status code in transport response handling
  • Record client reports with send_error discard reason for all envelope items
  • Log an error message informing users that the envelope was discarded due to size limits
  • Skip rate limit updates for 413 responses (not a rate limit scenario)

Closes#18935

CopilotAI review requested due to automatic review settings January 29, 2026 16:51
@linear

linearBot commented Jan 29, 2026

Copy link
Copy Markdown

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR implements proper handling for HTTP 413 (Content Too Large) responses from Relay, aligning with the updated SDK specification. When an envelope exceeds size limits, the SDK now records client reports with the send_error discard reason and logs a clear error message for users.

Changes:

  • Added 413 status code detection in the base transport's response handler
  • Records client reports with send_error reason for all envelope items (except client reports themselves to avoid feedback loops)
  • Logs an informative error message when envelopes are rejected due to size limits
  • Ensures 413 responses don't trigger rate limiting behavior (early return before rate limit update)

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

FileDescription
packages/core/src/transports/base.tsAdded HTTP 413 status code handling with client report recording and error logging, positioned before rate limit updates
packages/core/test/lib/transports/base.test.tsAdded comprehensive test suite covering single/multi-item envelopes, client report handling, and no rate limiting verification

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@github-actions

github-actionsBot commented Jan 29, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser25.4 kB+0.19%+46 B 🔺
@sentry/browser - with treeshaking flags23.85 kB-0.02%-4 B 🔽
@sentry/browser (incl. Tracing)42.21 kB+0.1%+41 B 🔺
@sentry/browser (incl. Tracing, Profiling)46.85 kB+0.09%+42 B 🔺
@sentry/browser (incl. Tracing, Replay)80.83 kB+0.06%+46 B 🔺
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags70.44 kB-0.01%-1 B 🔽
@sentry/browser (incl. Tracing, Replay with Canvas)85.54 kB+0.06%+45 B 🔺
@sentry/browser (incl. Tracing, Replay, Feedback)97.73 kB+0.05%+46 B 🔺
@sentry/browser (incl. Feedback)42.12 kB+0.11%+45 B 🔺
@sentry/browser (incl. sendFeedback)30.09 kB+0.15%+45 B 🔺
@sentry/browser (incl. FeedbackAsync)35.08 kB+0.13%+45 B 🔺
@sentry/browser (incl. Metrics)26.5 kB+0.14%+37 B 🔺
@sentry/browser (incl. Logs)26.66 kB+0.18%+47 B 🔺
@sentry/browser (incl. Metrics & Logs)27.32 kB+0.18%+49 B 🔺
@sentry/react27.13 kB+0.16%+43 B 🔺
@sentry/react (incl. Tracing)44.45 kB+0.11%+45 B 🔺
@sentry/vue29.83 kB+0.15%+43 B 🔺
@sentry/vue (incl. Tracing)44 kB+0.1%+43 B 🔺
@sentry/svelte25.41 kB+0.19%+46 B 🔺
CDN Bundle27.94 kB+0.07%+18 B 🔺
CDN Bundle (incl. Tracing)42.98 kB+0.05%+19 B 🔺
CDN Bundle (incl. Logs, Metrics)28.78 kB+0.06%+16 B 🔺
CDN Bundle (incl. Tracing, Logs, Metrics)43.8 kB+0.05%+19 B 🔺
CDN Bundle (incl. Replay, Logs, Metrics)67.72 kB+0.04%+22 B 🔺
CDN Bundle (incl. Tracing, Replay)79.71 kB+0.03%+19 B 🔺
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)80.58 kB+0.03%+18 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback)85.16 kB+0.02%+14 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)86.09 kB+0.03%+19 B 🔺
CDN Bundle - uncompressed81.73 kB+0.05%+39 B 🔺
CDN Bundle (incl. Tracing) - uncompressed127.27 kB+0.04%+39 B 🔺
CDN Bundle (incl. Logs, Metrics) - uncompressed84.56 kB+0.05%+39 B 🔺
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed130.1 kB+0.03%+39 B 🔺
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed207.94 kB+0.02%+39 B 🔺
CDN Bundle (incl. Tracing, Replay) - uncompressed243.87 kB+0.02%+39 B 🔺
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed246.69 kB+0.02%+39 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed256.67 kB+0.02%+39 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed259.48 kB+0.02%+39 B 🔺
@sentry/nextjs (client)46.8 kB+0.08%+37 B 🔺
@sentry/sveltekit (client)42.58 kB+0.11%+43 B 🔺
@sentry/node-core52.15 kB+0.09%+46 B 🔺
@sentry/node166.16 kB+0.04%+51 B 🔺
@sentry/node - without tracing93.91 kB+0.06%+53 B 🔺
@sentry/aws-serverless109.43 kB+0.05%+49 B 🔺

View base workflow run

@github-actions

github-actionsBot commented Jan 29, 2026

Copy link
Copy Markdown
Contributor

node-overhead report 🧳

Note: This is a synthetic benchmark with a minimal express app and does not necessarily reflect the real-world performance impact in an application.

ScenarioRequests/s% of BaselinePrev. Requests/sChange %
GET Baseline8,779-9,248-5%
GET With Sentry1,55118%1,733-11%
GET With Sentry (error only)5,96268%6,010-1%
POST Baseline1,182-1,182-
POST With Sentry57549%587-2%
POST With Sentry (error only)1,03888%1,033+0%
MYSQL Baseline3,233-3,299-2%
MYSQL With Sentry38712%427-9%
MYSQL With Sentry (error only)2,59780%2,615-1%

View base workflow run

// Loss of envelope content is expected so we record a send_error client report
// https://develop.sentry.dev/sdk/expected-features/#dealing-with-network-failures
if (response.statusCode === 413) {
DEBUG_BUILD &&

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

super-l: Suggestion for a follow-up: Do you think we could save some bytes here by combining the two debug warns (the one added here and the one below)? I think we could even guard the entire if block in line 87 with DEBUG_BUILD which should shake out some more bytes. We can check that when running size checks in the PR and looking at the non-debug CDN bundles. Feel free to disregard!

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a check to treeshake the block down there, but could not refactor the message in a way that saves up some byte, since both messages will get dropped if debug is disabled.

@logaretm
logaretmforce-pushed the awad/js-1531-sdk-handling-http-413-javascript branch from 7527529 to b42a04eCompareJanuary 29, 2026 19:33
@logaretm
logaretm merged commit 8b2aff0 into developJan 29, 2026
218 checks passed
@logaretm
logaretm deleted the awad/js-1531-sdk-handling-http-413-javascript branch January 29, 2026 21:17
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

SDK Handling HTTP 413 [JavaScript]

4 participants

@logaretm@timfish@Lms24
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(core): Record client report with reason for HTTP 413 responses - #19093

Merged
logaretm merged 3 commits into
developfrom
awad/js-1531-sdk-handling-http-413-javascript
Jan 29, 2026
Merged

fix(core): Record client report with reason for HTTP 413 responses#19093
logaretm merged 3 commits into
developfrom
awad/js-1531-sdk-handling-http-413-javascript

Conversation

@logaretm

Copy link
Copy Markdown
Member

Implements handling of HTTP 413 (Content Too Large) responses in the base transport according to the updated SDK spec.

  • Detect 413 status code in transport response handling
  • Record client reports with send_error discard reason for all envelope items
  • Log an error message informing users that the envelope was discarded due to size limits
  • Skip rate limit updates for 413 responses (not a rate limit scenario)

Closes#18935

CopilotAI review requested due to automatic review settings January 29, 2026 16:51
@linear

linearBot commented Jan 29, 2026

Copy link
Copy Markdown

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR implements proper handling for HTTP 413 (Content Too Large) responses from Relay, aligning with the updated SDK specification. When an envelope exceeds size limits, the SDK now records client reports with the send_error discard reason and logs a clear error message for users.

Changes:

  • Added 413 status code detection in the base transport's response handler
  • Records client reports with send_error reason for all envelope items (except client reports themselves to avoid feedback loops)
  • Logs an informative error message when envelopes are rejected due to size limits
  • Ensures 413 responses don't trigger rate limiting behavior (early return before rate limit update)

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

FileDescription
packages/core/src/transports/base.tsAdded HTTP 413 status code handling with client report recording and error logging, positioned before rate limit updates
packages/core/test/lib/transports/base.test.tsAdded comprehensive test suite covering single/multi-item envelopes, client report handling, and no rate limiting verification

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@github-actions

github-actionsBot commented Jan 29, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser25.4 kB+0.19%+46 B 🔺
@sentry/browser - with treeshaking flags23.85 kB-0.02%-4 B 🔽
@sentry/browser (incl. Tracing)42.21 kB+0.1%+41 B 🔺
@sentry/browser (incl. Tracing, Profiling)46.85 kB+0.09%+42 B 🔺
@sentry/browser (incl. Tracing, Replay)80.83 kB+0.06%+46 B 🔺
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags70.44 kB-0.01%-1 B 🔽
@sentry/browser (incl. Tracing, Replay with Canvas)85.54 kB+0.06%+45 B 🔺
@sentry/browser (incl. Tracing, Replay, Feedback)97.73 kB+0.05%+46 B 🔺
@sentry/browser (incl. Feedback)42.12 kB+0.11%+45 B 🔺
@sentry/browser (incl. sendFeedback)30.09 kB+0.15%+45 B 🔺
@sentry/browser (incl. FeedbackAsync)35.08 kB+0.13%+45 B 🔺
@sentry/browser (incl. Metrics)26.5 kB+0.14%+37 B 🔺
@sentry/browser (incl. Logs)26.66 kB+0.18%+47 B 🔺
@sentry/browser (incl. Metrics & Logs)27.32 kB+0.18%+49 B 🔺
@sentry/react27.13 kB+0.16%+43 B 🔺
@sentry/react (incl. Tracing)44.45 kB+0.11%+45 B 🔺
@sentry/vue29.83 kB+0.15%+43 B 🔺
@sentry/vue (incl. Tracing)44 kB+0.1%+43 B 🔺
@sentry/svelte25.41 kB+0.19%+46 B 🔺
CDN Bundle27.94 kB+0.07%+18 B 🔺
CDN Bundle (incl. Tracing)42.98 kB+0.05%+19 B 🔺
CDN Bundle (incl. Logs, Metrics)28.78 kB+0.06%+16 B 🔺
CDN Bundle (incl. Tracing, Logs, Metrics)43.8 kB+0.05%+19 B 🔺
CDN Bundle (incl. Replay, Logs, Metrics)67.72 kB+0.04%+22 B 🔺
CDN Bundle (incl. Tracing, Replay)79.71 kB+0.03%+19 B 🔺
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)80.58 kB+0.03%+18 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback)85.16 kB+0.02%+14 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)86.09 kB+0.03%+19 B 🔺
CDN Bundle - uncompressed81.73 kB+0.05%+39 B 🔺
CDN Bundle (incl. Tracing) - uncompressed127.27 kB+0.04%+39 B 🔺
CDN Bundle (incl. Logs, Metrics) - uncompressed84.56 kB+0.05%+39 B 🔺
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed130.1 kB+0.03%+39 B 🔺
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed207.94 kB+0.02%+39 B 🔺
CDN Bundle (incl. Tracing, Replay) - uncompressed243.87 kB+0.02%+39 B 🔺
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed246.69 kB+0.02%+39 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed256.67 kB+0.02%+39 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed259.48 kB+0.02%+39 B 🔺
@sentry/nextjs (client)46.8 kB+0.08%+37 B 🔺
@sentry/sveltekit (client)42.58 kB+0.11%+43 B 🔺
@sentry/node-core52.15 kB+0.09%+46 B 🔺
@sentry/node166.16 kB+0.04%+51 B 🔺
@sentry/node - without tracing93.91 kB+0.06%+53 B 🔺
@sentry/aws-serverless109.43 kB+0.05%+49 B 🔺

View base workflow run

@github-actions

github-actionsBot commented Jan 29, 2026

Copy link
Copy Markdown
Contributor

node-overhead report 🧳

Note: This is a synthetic benchmark with a minimal express app and does not necessarily reflect the real-world performance impact in an application.

ScenarioRequests/s% of BaselinePrev. Requests/sChange %
GET Baseline8,779-9,248-5%
GET With Sentry1,55118%1,733-11%
GET With Sentry (error only)5,96268%6,010-1%
POST Baseline1,182-1,182-
POST With Sentry57549%587-2%
POST With Sentry (error only)1,03888%1,033+0%
MYSQL Baseline3,233-3,299-2%
MYSQL With Sentry38712%427-9%
MYSQL With Sentry (error only)2,59780%2,615-1%

View base workflow run

// Loss of envelope content is expected so we record a send_error client report
// https://develop.sentry.dev/sdk/expected-features/#dealing-with-network-failures
if (response.statusCode === 413) {
DEBUG_BUILD &&

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

super-l: Suggestion for a follow-up: Do you think we could save some bytes here by combining the two debug warns (the one added here and the one below)? I think we could even guard the entire if block in line 87 with DEBUG_BUILD which should shake out some more bytes. We can check that when running size checks in the PR and looking at the non-debug CDN bundles. Feel free to disregard!

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a check to treeshake the block down there, but could not refactor the message in a way that saves up some byte, since both messages will get dropped if debug is disabled.

@logaretm
logaretmforce-pushed the awad/js-1531-sdk-handling-http-413-javascript branch from 7527529 to b42a04eCompareJanuary 29, 2026 19:33
@logaretm
logaretm merged commit 8b2aff0 into developJan 29, 2026
218 checks passed
@logaretm
logaretm deleted the awad/js-1531-sdk-handling-http-413-javascript branch January 29, 2026 21:17
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

SDK Handling HTTP 413 [JavaScript]

4 participants

@logaretm@timfish@Lms24
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

fix(core): Record client report with reason for HTTP 413 responses - #19093

Merged
logaretm merged 3 commits into
developfrom
awad/js-1531-sdk-handling-http-413-javascript
Jan 29, 2026
Merged

fix(core): Record client report with reason for HTTP 413 responses#19093
logaretm merged 3 commits into
developfrom
awad/js-1531-sdk-handling-http-413-javascript

Conversation

@logaretm

Copy link
Copy Markdown
Member

Implements handling of HTTP 413 (Content Too Large) responses in the base transport according to the updated SDK spec.

  • Detect 413 status code in transport response handling
  • Record client reports with send_error discard reason for all envelope items
  • Log an error message informing users that the envelope was discarded due to size limits
  • Skip rate limit updates for 413 responses (not a rate limit scenario)

Closes#18935

CopilotAI review requested due to automatic review settings January 29, 2026 16:51
@linear

linearBot commented Jan 29, 2026

Copy link
Copy Markdown

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR implements proper handling for HTTP 413 (Content Too Large) responses from Relay, aligning with the updated SDK specification. When an envelope exceeds size limits, the SDK now records client reports with the send_error discard reason and logs a clear error message for users.

Changes:

  • Added 413 status code detection in the base transport's response handler
  • Records client reports with send_error reason for all envelope items (except client reports themselves to avoid feedback loops)
  • Logs an informative error message when envelopes are rejected due to size limits
  • Ensures 413 responses don't trigger rate limiting behavior (early return before rate limit update)

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

FileDescription
packages/core/src/transports/base.tsAdded HTTP 413 status code handling with client report recording and error logging, positioned before rate limit updates
packages/core/test/lib/transports/base.test.tsAdded comprehensive test suite covering single/multi-item envelopes, client report handling, and no rate limiting verification

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@github-actions

github-actionsBot commented Jan 29, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser25.4 kB+0.19%+46 B 🔺
@sentry/browser - with treeshaking flags23.85 kB-0.02%-4 B 🔽
@sentry/browser (incl. Tracing)42.21 kB+0.1%+41 B 🔺
@sentry/browser (incl. Tracing, Profiling)46.85 kB+0.09%+42 B 🔺
@sentry/browser (incl. Tracing, Replay)80.83 kB+0.06%+46 B 🔺
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags70.44 kB-0.01%-1 B 🔽
@sentry/browser (incl. Tracing, Replay with Canvas)85.54 kB+0.06%+45 B 🔺
@sentry/browser (incl. Tracing, Replay, Feedback)97.73 kB+0.05%+46 B 🔺
@sentry/browser (incl. Feedback)42.12 kB+0.11%+45 B 🔺
@sentry/browser (incl. sendFeedback)30.09 kB+0.15%+45 B 🔺
@sentry/browser (incl. FeedbackAsync)35.08 kB+0.13%+45 B 🔺
@sentry/browser (incl. Metrics)26.5 kB+0.14%+37 B 🔺
@sentry/browser (incl. Logs)26.66 kB+0.18%+47 B 🔺
@sentry/browser (incl. Metrics & Logs)27.32 kB+0.18%+49 B 🔺
@sentry/react27.13 kB+0.16%+43 B 🔺
@sentry/react (incl. Tracing)44.45 kB+0.11%+45 B 🔺
@sentry/vue29.83 kB+0.15%+43 B 🔺
@sentry/vue (incl. Tracing)44 kB+0.1%+43 B 🔺
@sentry/svelte25.41 kB+0.19%+46 B 🔺
CDN Bundle27.94 kB+0.07%+18 B 🔺
CDN Bundle (incl. Tracing)42.98 kB+0.05%+19 B 🔺
CDN Bundle (incl. Logs, Metrics)28.78 kB+0.06%+16 B 🔺
CDN Bundle (incl. Tracing, Logs, Metrics)43.8 kB+0.05%+19 B 🔺
CDN Bundle (incl. Replay, Logs, Metrics)67.72 kB+0.04%+22 B 🔺
CDN Bundle (incl. Tracing, Replay)79.71 kB+0.03%+19 B 🔺
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)80.58 kB+0.03%+18 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback)85.16 kB+0.02%+14 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)86.09 kB+0.03%+19 B 🔺
CDN Bundle - uncompressed81.73 kB+0.05%+39 B 🔺
CDN Bundle (incl. Tracing) - uncompressed127.27 kB+0.04%+39 B 🔺
CDN Bundle (incl. Logs, Metrics) - uncompressed84.56 kB+0.05%+39 B 🔺
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed130.1 kB+0.03%+39 B 🔺
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed207.94 kB+0.02%+39 B 🔺
CDN Bundle (incl. Tracing, Replay) - uncompressed243.87 kB+0.02%+39 B 🔺
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed246.69 kB+0.02%+39 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed256.67 kB+0.02%+39 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed259.48 kB+0.02%+39 B 🔺
@sentry/nextjs (client)46.8 kB+0.08%+37 B 🔺
@sentry/sveltekit (client)42.58 kB+0.11%+43 B 🔺
@sentry/node-core52.15 kB+0.09%+46 B 🔺
@sentry/node166.16 kB+0.04%+51 B 🔺
@sentry/node - without tracing93.91 kB+0.06%+53 B 🔺
@sentry/aws-serverless109.43 kB+0.05%+49 B 🔺

View base workflow run

@github-actions

github-actionsBot commented Jan 29, 2026

Copy link
Copy Markdown
Contributor

node-overhead report 🧳

Note: This is a synthetic benchmark with a minimal express app and does not necessarily reflect the real-world performance impact in an application.

ScenarioRequests/s% of BaselinePrev. Requests/sChange %
GET Baseline8,779-9,248-5%
GET With Sentry1,55118%1,733-11%
GET With Sentry (error only)5,96268%6,010-1%
POST Baseline1,182-1,182-
POST With Sentry57549%587-2%
POST With Sentry (error only)1,03888%1,033+0%
MYSQL Baseline3,233-3,299-2%
MYSQL With Sentry38712%427-9%
MYSQL With Sentry (error only)2,59780%2,615-1%

View base workflow run

// Loss of envelope content is expected so we record a send_error client report
// https://develop.sentry.dev/sdk/expected-features/#dealing-with-network-failures
if (response.statusCode === 413) {
DEBUG_BUILD &&

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

super-l: Suggestion for a follow-up: Do you think we could save some bytes here by combining the two debug warns (the one added here and the one below)? I think we could even guard the entire if block in line 87 with DEBUG_BUILD which should shake out some more bytes. We can check that when running size checks in the PR and looking at the non-debug CDN bundles. Feel free to disregard!

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a check to treeshake the block down there, but could not refactor the message in a way that saves up some byte, since both messages will get dropped if debug is disabled.

@logaretm
logaretmforce-pushed the awad/js-1531-sdk-handling-http-413-javascript branch from 7527529 to b42a04eCompareJanuary 29, 2026 19:33
@logaretm
logaretm merged commit 8b2aff0 into developJan 29, 2026
218 checks passed
@logaretm
logaretm deleted the awad/js-1531-sdk-handling-http-413-javascript branch January 29, 2026 21:17
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

SDK Handling HTTP 413 [JavaScript]

4 participants

@logaretm@timfish@Lms24
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(core): Record client report with reason for HTTP 413 responses - #19093

Merged
logaretm merged 3 commits into
developfrom
awad/js-1531-sdk-handling-http-413-javascript
Jan 29, 2026
Merged

fix(core): Record client report with reason for HTTP 413 responses#19093
logaretm merged 3 commits into
developfrom
awad/js-1531-sdk-handling-http-413-javascript

Conversation

@logaretm

Copy link
Copy Markdown
Member

Implements handling of HTTP 413 (Content Too Large) responses in the base transport according to the updated SDK spec.

  • Detect 413 status code in transport response handling
  • Record client reports with send_error discard reason for all envelope items
  • Log an error message informing users that the envelope was discarded due to size limits
  • Skip rate limit updates for 413 responses (not a rate limit scenario)

Closes#18935

CopilotAI review requested due to automatic review settings January 29, 2026 16:51
@linear

linearBot commented Jan 29, 2026

Copy link
Copy Markdown

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR implements proper handling for HTTP 413 (Content Too Large) responses from Relay, aligning with the updated SDK specification. When an envelope exceeds size limits, the SDK now records client reports with the send_error discard reason and logs a clear error message for users.

Changes:

  • Added 413 status code detection in the base transport's response handler
  • Records client reports with send_error reason for all envelope items (except client reports themselves to avoid feedback loops)
  • Logs an informative error message when envelopes are rejected due to size limits
  • Ensures 413 responses don't trigger rate limiting behavior (early return before rate limit update)

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

FileDescription
packages/core/src/transports/base.tsAdded HTTP 413 status code handling with client report recording and error logging, positioned before rate limit updates
packages/core/test/lib/transports/base.test.tsAdded comprehensive test suite covering single/multi-item envelopes, client report handling, and no rate limiting verification

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@github-actions

github-actionsBot commented Jan 29, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser25.4 kB+0.19%+46 B 🔺
@sentry/browser - with treeshaking flags23.85 kB-0.02%-4 B 🔽
@sentry/browser (incl. Tracing)42.21 kB+0.1%+41 B 🔺
@sentry/browser (incl. Tracing, Profiling)46.85 kB+0.09%+42 B 🔺
@sentry/browser (incl. Tracing, Replay)80.83 kB+0.06%+46 B 🔺
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags70.44 kB-0.01%-1 B 🔽
@sentry/browser (incl. Tracing, Replay with Canvas)85.54 kB+0.06%+45 B 🔺
@sentry/browser (incl. Tracing, Replay, Feedback)97.73 kB+0.05%+46 B 🔺
@sentry/browser (incl. Feedback)42.12 kB+0.11%+45 B 🔺
@sentry/browser (incl. sendFeedback)30.09 kB+0.15%+45 B 🔺
@sentry/browser (incl. FeedbackAsync)35.08 kB+0.13%+45 B 🔺
@sentry/browser (incl. Metrics)26.5 kB+0.14%+37 B 🔺
@sentry/browser (incl. Logs)26.66 kB+0.18%+47 B 🔺
@sentry/browser (incl. Metrics & Logs)27.32 kB+0.18%+49 B 🔺
@sentry/react27.13 kB+0.16%+43 B 🔺
@sentry/react (incl. Tracing)44.45 kB+0.11%+45 B 🔺
@sentry/vue29.83 kB+0.15%+43 B 🔺
@sentry/vue (incl. Tracing)44 kB+0.1%+43 B 🔺
@sentry/svelte25.41 kB+0.19%+46 B 🔺
CDN Bundle27.94 kB+0.07%+18 B 🔺
CDN Bundle (incl. Tracing)42.98 kB+0.05%+19 B 🔺
CDN Bundle (incl. Logs, Metrics)28.78 kB+0.06%+16 B 🔺
CDN Bundle (incl. Tracing, Logs, Metrics)43.8 kB+0.05%+19 B 🔺
CDN Bundle (incl. Replay, Logs, Metrics)67.72 kB+0.04%+22 B 🔺
CDN Bundle (incl. Tracing, Replay)79.71 kB+0.03%+19 B 🔺
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)80.58 kB+0.03%+18 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback)85.16 kB+0.02%+14 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)86.09 kB+0.03%+19 B 🔺
CDN Bundle - uncompressed81.73 kB+0.05%+39 B 🔺
CDN Bundle (incl. Tracing) - uncompressed127.27 kB+0.04%+39 B 🔺
CDN Bundle (incl. Logs, Metrics) - uncompressed84.56 kB+0.05%+39 B 🔺
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed130.1 kB+0.03%+39 B 🔺
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed207.94 kB+0.02%+39 B 🔺
CDN Bundle (incl. Tracing, Replay) - uncompressed243.87 kB+0.02%+39 B 🔺
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed246.69 kB+0.02%+39 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed256.67 kB+0.02%+39 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed259.48 kB+0.02%+39 B 🔺
@sentry/nextjs (client)46.8 kB+0.08%+37 B 🔺
@sentry/sveltekit (client)42.58 kB+0.11%+43 B 🔺
@sentry/node-core52.15 kB+0.09%+46 B 🔺
@sentry/node166.16 kB+0.04%+51 B 🔺
@sentry/node - without tracing93.91 kB+0.06%+53 B 🔺
@sentry/aws-serverless109.43 kB+0.05%+49 B 🔺

View base workflow run

@github-actions

github-actionsBot commented Jan 29, 2026

Copy link
Copy Markdown
Contributor

node-overhead report 🧳

Note: This is a synthetic benchmark with a minimal express app and does not necessarily reflect the real-world performance impact in an application.

ScenarioRequests/s% of BaselinePrev. Requests/sChange %
GET Baseline8,779-9,248-5%
GET With Sentry1,55118%1,733-11%
GET With Sentry (error only)5,96268%6,010-1%
POST Baseline1,182-1,182-
POST With Sentry57549%587-2%
POST With Sentry (error only)1,03888%1,033+0%
MYSQL Baseline3,233-3,299-2%
MYSQL With Sentry38712%427-9%
MYSQL With Sentry (error only)2,59780%2,615-1%

View base workflow run

// Loss of envelope content is expected so we record a send_error client report
// https://develop.sentry.dev/sdk/expected-features/#dealing-with-network-failures
if (response.statusCode === 413) {
DEBUG_BUILD &&

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

super-l: Suggestion for a follow-up: Do you think we could save some bytes here by combining the two debug warns (the one added here and the one below)? I think we could even guard the entire if block in line 87 with DEBUG_BUILD which should shake out some more bytes. We can check that when running size checks in the PR and looking at the non-debug CDN bundles. Feel free to disregard!

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a check to treeshake the block down there, but could not refactor the message in a way that saves up some byte, since both messages will get dropped if debug is disabled.

@logaretm
logaretmforce-pushed the awad/js-1531-sdk-handling-http-413-javascript branch from 7527529 to b42a04eCompareJanuary 29, 2026 19:33
@logaretm
logaretm merged commit 8b2aff0 into developJan 29, 2026
218 checks passed
@logaretm
logaretm deleted the awad/js-1531-sdk-handling-http-413-javascript branch January 29, 2026 21:17
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

SDK Handling HTTP 413 [JavaScript]

4 participants

@logaretm@timfish@Lms24
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(core): Record client report with reason for HTTP 413 responses - #19093

Merged
logaretm merged 3 commits into
developfrom
awad/js-1531-sdk-handling-http-413-javascript
Jan 29, 2026
Merged

fix(core): Record client report with reason for HTTP 413 responses#19093
logaretm merged 3 commits into
developfrom
awad/js-1531-sdk-handling-http-413-javascript

Conversation

@logaretm

Copy link
Copy Markdown
Member

Implements handling of HTTP 413 (Content Too Large) responses in the base transport according to the updated SDK spec.

  • Detect 413 status code in transport response handling
  • Record client reports with send_error discard reason for all envelope items
  • Log an error message informing users that the envelope was discarded due to size limits
  • Skip rate limit updates for 413 responses (not a rate limit scenario)

Closes#18935

CopilotAI review requested due to automatic review settings January 29, 2026 16:51
@linear

linearBot commented Jan 29, 2026

Copy link
Copy Markdown

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR implements proper handling for HTTP 413 (Content Too Large) responses from Relay, aligning with the updated SDK specification. When an envelope exceeds size limits, the SDK now records client reports with the send_error discard reason and logs a clear error message for users.

Changes:

  • Added 413 status code detection in the base transport's response handler
  • Records client reports with send_error reason for all envelope items (except client reports themselves to avoid feedback loops)
  • Logs an informative error message when envelopes are rejected due to size limits
  • Ensures 413 responses don't trigger rate limiting behavior (early return before rate limit update)

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

FileDescription
packages/core/src/transports/base.tsAdded HTTP 413 status code handling with client report recording and error logging, positioned before rate limit updates
packages/core/test/lib/transports/base.test.tsAdded comprehensive test suite covering single/multi-item envelopes, client report handling, and no rate limiting verification

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@github-actions

github-actionsBot commented Jan 29, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser25.4 kB+0.19%+46 B 🔺
@sentry/browser - with treeshaking flags23.85 kB-0.02%-4 B 🔽
@sentry/browser (incl. Tracing)42.21 kB+0.1%+41 B 🔺
@sentry/browser (incl. Tracing, Profiling)46.85 kB+0.09%+42 B 🔺
@sentry/browser (incl. Tracing, Replay)80.83 kB+0.06%+46 B 🔺
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags70.44 kB-0.01%-1 B 🔽
@sentry/browser (incl. Tracing, Replay with Canvas)85.54 kB+0.06%+45 B 🔺
@sentry/browser (incl. Tracing, Replay, Feedback)97.73 kB+0.05%+46 B 🔺
@sentry/browser (incl. Feedback)42.12 kB+0.11%+45 B 🔺
@sentry/browser (incl. sendFeedback)30.09 kB+0.15%+45 B 🔺
@sentry/browser (incl. FeedbackAsync)35.08 kB+0.13%+45 B 🔺
@sentry/browser (incl. Metrics)26.5 kB+0.14%+37 B 🔺
@sentry/browser (incl. Logs)26.66 kB+0.18%+47 B 🔺
@sentry/browser (incl. Metrics & Logs)27.32 kB+0.18%+49 B 🔺
@sentry/react27.13 kB+0.16%+43 B 🔺
@sentry/react (incl. Tracing)44.45 kB+0.11%+45 B 🔺
@sentry/vue29.83 kB+0.15%+43 B 🔺
@sentry/vue (incl. Tracing)44 kB+0.1%+43 B 🔺
@sentry/svelte25.41 kB+0.19%+46 B 🔺
CDN Bundle27.94 kB+0.07%+18 B 🔺
CDN Bundle (incl. Tracing)42.98 kB+0.05%+19 B 🔺
CDN Bundle (incl. Logs, Metrics)28.78 kB+0.06%+16 B 🔺
CDN Bundle (incl. Tracing, Logs, Metrics)43.8 kB+0.05%+19 B 🔺
CDN Bundle (incl. Replay, Logs, Metrics)67.72 kB+0.04%+22 B 🔺
CDN Bundle (incl. Tracing, Replay)79.71 kB+0.03%+19 B 🔺
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)80.58 kB+0.03%+18 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback)85.16 kB+0.02%+14 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)86.09 kB+0.03%+19 B 🔺
CDN Bundle - uncompressed81.73 kB+0.05%+39 B 🔺
CDN Bundle (incl. Tracing) - uncompressed127.27 kB+0.04%+39 B 🔺
CDN Bundle (incl. Logs, Metrics) - uncompressed84.56 kB+0.05%+39 B 🔺
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed130.1 kB+0.03%+39 B 🔺
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed207.94 kB+0.02%+39 B 🔺
CDN Bundle (incl. Tracing, Replay) - uncompressed243.87 kB+0.02%+39 B 🔺
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed246.69 kB+0.02%+39 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed256.67 kB+0.02%+39 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed259.48 kB+0.02%+39 B 🔺
@sentry/nextjs (client)46.8 kB+0.08%+37 B 🔺
@sentry/sveltekit (client)42.58 kB+0.11%+43 B 🔺
@sentry/node-core52.15 kB+0.09%+46 B 🔺
@sentry/node166.16 kB+0.04%+51 B 🔺
@sentry/node - without tracing93.91 kB+0.06%+53 B 🔺
@sentry/aws-serverless109.43 kB+0.05%+49 B 🔺

View base workflow run

@github-actions

github-actionsBot commented Jan 29, 2026

Copy link
Copy Markdown
Contributor

node-overhead report 🧳

Note: This is a synthetic benchmark with a minimal express app and does not necessarily reflect the real-world performance impact in an application.

ScenarioRequests/s% of BaselinePrev. Requests/sChange %
GET Baseline8,779-9,248-5%
GET With Sentry1,55118%1,733-11%
GET With Sentry (error only)5,96268%6,010-1%
POST Baseline1,182-1,182-
POST With Sentry57549%587-2%
POST With Sentry (error only)1,03888%1,033+0%
MYSQL Baseline3,233-3,299-2%
MYSQL With Sentry38712%427-9%
MYSQL With Sentry (error only)2,59780%2,615-1%

View base workflow run

// Loss of envelope content is expected so we record a send_error client report
// https://develop.sentry.dev/sdk/expected-features/#dealing-with-network-failures
if (response.statusCode === 413) {
DEBUG_BUILD &&

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

super-l: Suggestion for a follow-up: Do you think we could save some bytes here by combining the two debug warns (the one added here and the one below)? I think we could even guard the entire if block in line 87 with DEBUG_BUILD which should shake out some more bytes. We can check that when running size checks in the PR and looking at the non-debug CDN bundles. Feel free to disregard!

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a check to treeshake the block down there, but could not refactor the message in a way that saves up some byte, since both messages will get dropped if debug is disabled.

@logaretm
logaretmforce-pushed the awad/js-1531-sdk-handling-http-413-javascript branch from 7527529 to b42a04eCompareJanuary 29, 2026 19:33
@logaretm
logaretm merged commit 8b2aff0 into developJan 29, 2026
218 checks passed
@logaretm
logaretm deleted the awad/js-1531-sdk-handling-http-413-javascript branch January 29, 2026 21:17
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

SDK Handling HTTP 413 [JavaScript]

4 participants

@logaretm@timfish@Lms24
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

fix(core): Record client report with reason for HTTP 413 responses - #19093

Merged
logaretm merged 3 commits into
developfrom
awad/js-1531-sdk-handling-http-413-javascript
Jan 29, 2026
Merged

fix(core): Record client report with reason for HTTP 413 responses#19093
logaretm merged 3 commits into
developfrom
awad/js-1531-sdk-handling-http-413-javascript

Conversation

@logaretm

Copy link
Copy Markdown
Member

Implements handling of HTTP 413 (Content Too Large) responses in the base transport according to the updated SDK spec.

  • Detect 413 status code in transport response handling
  • Record client reports with send_error discard reason for all envelope items
  • Log an error message informing users that the envelope was discarded due to size limits
  • Skip rate limit updates for 413 responses (not a rate limit scenario)

Closes#18935

CopilotAI review requested due to automatic review settings January 29, 2026 16:51
@linear

linearBot commented Jan 29, 2026

Copy link
Copy Markdown

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR implements proper handling for HTTP 413 (Content Too Large) responses from Relay, aligning with the updated SDK specification. When an envelope exceeds size limits, the SDK now records client reports with the send_error discard reason and logs a clear error message for users.

Changes:

  • Added 413 status code detection in the base transport's response handler
  • Records client reports with send_error reason for all envelope items (except client reports themselves to avoid feedback loops)
  • Logs an informative error message when envelopes are rejected due to size limits
  • Ensures 413 responses don't trigger rate limiting behavior (early return before rate limit update)

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

FileDescription
packages/core/src/transports/base.tsAdded HTTP 413 status code handling with client report recording and error logging, positioned before rate limit updates
packages/core/test/lib/transports/base.test.tsAdded comprehensive test suite covering single/multi-item envelopes, client report handling, and no rate limiting verification

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@github-actions

github-actionsBot commented Jan 29, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser25.4 kB+0.19%+46 B 🔺
@sentry/browser - with treeshaking flags23.85 kB-0.02%-4 B 🔽
@sentry/browser (incl. Tracing)42.21 kB+0.1%+41 B 🔺
@sentry/browser (incl. Tracing, Profiling)46.85 kB+0.09%+42 B 🔺
@sentry/browser (incl. Tracing, Replay)80.83 kB+0.06%+46 B 🔺
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags70.44 kB-0.01%-1 B 🔽
@sentry/browser (incl. Tracing, Replay with Canvas)85.54 kB+0.06%+45 B 🔺
@sentry/browser (incl. Tracing, Replay, Feedback)97.73 kB+0.05%+46 B 🔺
@sentry/browser (incl. Feedback)42.12 kB+0.11%+45 B 🔺
@sentry/browser (incl. sendFeedback)30.09 kB+0.15%+45 B 🔺
@sentry/browser (incl. FeedbackAsync)35.08 kB+0.13%+45 B 🔺
@sentry/browser (incl. Metrics)26.5 kB+0.14%+37 B 🔺
@sentry/browser (incl. Logs)26.66 kB+0.18%+47 B 🔺
@sentry/browser (incl. Metrics & Logs)27.32 kB+0.18%+49 B 🔺
@sentry/react27.13 kB+0.16%+43 B 🔺
@sentry/react (incl. Tracing)44.45 kB+0.11%+45 B 🔺
@sentry/vue29.83 kB+0.15%+43 B 🔺
@sentry/vue (incl. Tracing)44 kB+0.1%+43 B 🔺
@sentry/svelte25.41 kB+0.19%+46 B 🔺
CDN Bundle27.94 kB+0.07%+18 B 🔺
CDN Bundle (incl. Tracing)42.98 kB+0.05%+19 B 🔺
CDN Bundle (incl. Logs, Metrics)28.78 kB+0.06%+16 B 🔺
CDN Bundle (incl. Tracing, Logs, Metrics)43.8 kB+0.05%+19 B 🔺
CDN Bundle (incl. Replay, Logs, Metrics)67.72 kB+0.04%+22 B 🔺
CDN Bundle (incl. Tracing, Replay)79.71 kB+0.03%+19 B 🔺
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)80.58 kB+0.03%+18 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback)85.16 kB+0.02%+14 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)86.09 kB+0.03%+19 B 🔺
CDN Bundle - uncompressed81.73 kB+0.05%+39 B 🔺
CDN Bundle (incl. Tracing) - uncompressed127.27 kB+0.04%+39 B 🔺
CDN Bundle (incl. Logs, Metrics) - uncompressed84.56 kB+0.05%+39 B 🔺
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed130.1 kB+0.03%+39 B 🔺
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed207.94 kB+0.02%+39 B 🔺
CDN Bundle (incl. Tracing, Replay) - uncompressed243.87 kB+0.02%+39 B 🔺
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed246.69 kB+0.02%+39 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed256.67 kB+0.02%+39 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed259.48 kB+0.02%+39 B 🔺
@sentry/nextjs (client)46.8 kB+0.08%+37 B 🔺
@sentry/sveltekit (client)42.58 kB+0.11%+43 B 🔺
@sentry/node-core52.15 kB+0.09%+46 B 🔺
@sentry/node166.16 kB+0.04%+51 B 🔺
@sentry/node - without tracing93.91 kB+0.06%+53 B 🔺
@sentry/aws-serverless109.43 kB+0.05%+49 B 🔺

View base workflow run

@github-actions

github-actionsBot commented Jan 29, 2026

Copy link
Copy Markdown
Contributor

node-overhead report 🧳

Note: This is a synthetic benchmark with a minimal express app and does not necessarily reflect the real-world performance impact in an application.

ScenarioRequests/s% of BaselinePrev. Requests/sChange %
GET Baseline8,779-9,248-5%
GET With Sentry1,55118%1,733-11%
GET With Sentry (error only)5,96268%6,010-1%
POST Baseline1,182-1,182-
POST With Sentry57549%587-2%
POST With Sentry (error only)1,03888%1,033+0%
MYSQL Baseline3,233-3,299-2%
MYSQL With Sentry38712%427-9%
MYSQL With Sentry (error only)2,59780%2,615-1%

View base workflow run

// Loss of envelope content is expected so we record a send_error client report
// https://develop.sentry.dev/sdk/expected-features/#dealing-with-network-failures
if (response.statusCode === 413) {
DEBUG_BUILD &&

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

super-l: Suggestion for a follow-up: Do you think we could save some bytes here by combining the two debug warns (the one added here and the one below)? I think we could even guard the entire if block in line 87 with DEBUG_BUILD which should shake out some more bytes. We can check that when running size checks in the PR and looking at the non-debug CDN bundles. Feel free to disregard!

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a check to treeshake the block down there, but could not refactor the message in a way that saves up some byte, since both messages will get dropped if debug is disabled.

@logaretm
logaretmforce-pushed the awad/js-1531-sdk-handling-http-413-javascript branch from 7527529 to b42a04eCompareJanuary 29, 2026 19:33
@logaretm
logaretm merged commit 8b2aff0 into developJan 29, 2026
218 checks passed
@logaretm
logaretm deleted the awad/js-1531-sdk-handling-http-413-javascript branch January 29, 2026 21:17
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

SDK Handling HTTP 413 [JavaScript]

4 participants

@logaretm@timfish@Lms24