Skip to content

feat(core): Limit the body size of tunnel requests - #25515

Merged
logaretm merged 1 commit into
developfrom
sig/tunnel-body-size-limit
Oct 19, 2026
Merged

logaretm merged 1 commit into
developfrom
sig/tunnel-body-size-limit

Conversation

@s1gr1d

@s1gr1d s1gr1d commented Oct 19, 2026

Copy link
Copy Markdown
Member

The tunnel route handlers (@sentry/nextjs/tunnel and TanStack Start's createSentryTunnelRoute) now check the request size before they read the body.

A request larger than 20 MiB gets a 413, and a request without Content-Length gets a 411. So one request can no longer make the server hold more than 20 MiB in memory. SDK envelopes are much smaller than this limit, so normal traffic does not change.

Checking the header is enough, because the HTTP server stops reading the body at Content-Length.

Stacked on #25456.

@s1gr1d
s1gr1d added this pull request to stack #25516 October 19, 2026 11:03
@s1gr1d
s1gr1d requested a review from a team as a code owner October 19, 2026 11:03
@s1gr1d
s1gr1d requested review from chargome, logaretm and mydea and removed request for a team October 19, 2026 11:03
Base automatically changed from sig/nextjs-tunnel-route-handler to develop October 19, 2026 13:24
@s1gr1d
s1gr1d force-pushed the sig/tunnel-body-size-limit branch from 719d343 to 5f5fa14 Compare October 19, 2026 13:24
@github-actions

github-actions Bot commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

size-limit report 📦

Path Size % Change Change
@sentry/browser 29.88 kB - -
@sentry/browser - with treeshaking flags 28.02 kB - -
@sentry/browser - with treeshaking flags tracing without tracing 27.92 kB - -
@sentry/browser (incl. Tracing) 52.07 kB - -
@sentry/browser (incl. Tracing + Span Streaming) 52.07 kB - -
@sentry/browser (incl. Tracing, Profiling) 55.02 kB - -
@sentry/browser (incl. Tracing, Replay) 91.82 kB - -
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags 80.68 kB - -
@sentry/browser (incl. Tracing, Replay with Canvas) 96.55 kB - -
@sentry/browser (incl. Tracing, Replay, Feedback) 109.49 kB - -
@sentry/browser (incl. Feedback) 47.4 kB - -
@sentry/browser (incl. sendFeedback) 34.94 kB - -
@sentry/browser (incl. FeedbackAsync) 40.05 kB - -
@sentry/browser (incl. Metrics) 30.9 kB - -
@sentry/browser (incl. Logs) 31.18 kB - -
@sentry/browser (incl. Metrics & Logs) 31.81 kB - -
@sentry/react 31.7 kB - -
@sentry/react (incl. Tracing) 54.39 kB - -
@sentry/vue 38.04 kB - -
@sentry/vue (incl. Tracing) 55.01 kB - -
@sentry/svelte 29.9 kB - -
@sentry/remix (Remix 3 client bundle) 57.08 kB - -
CDN Bundle 31.64 kB - -
CDN Bundle (incl. Tracing) 52.58 kB - -
CDN Bundle (incl. Logs, Metrics) 33.84 kB - -
CDN Bundle (incl. Tracing, Logs, Metrics) 54.52 kB - -
CDN Bundle (incl. Replay, Logs, Metrics) 74.77 kB - -
CDN Bundle (incl. Tracing, Replay) 90.25 kB - -
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) 92.18 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback) 96.4 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) 98.34 kB - -
CDN Bundle - uncompressed 93.18 kB - -
CDN Bundle (incl. Tracing) - uncompressed 156.03 kB - -
CDN Bundle (incl. Logs, Metrics) - uncompressed 99.72 kB - -
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed 161.99 kB - -
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed 229.76 kB - -
CDN Bundle (incl. Tracing, Replay) - uncompressed 276.2 kB - -
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed 282.14 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed 289.9 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed 295.84 kB - -
@sentry/nextjs (client) 56.84 kB - -
@sentry/sveltekit (client) 52.45 kB - -
@sentry/core/server 41.12 kB - -
@sentry/core/browser 13.81 kB - -
@sentry/node 155.04 kB +0.01% +10 B 🔺
@sentry/node/import (ESM hook with diagnostics-channel injection) 84.06 kB - -
@sentry/node - without tracing 96.7 kB +0.01% +4 B 🔺
@sentry/node - without channel injection 133.07 kB +0.01% +5 B 🔺
@sentry/aws-serverless 104.89 kB +0.01% +4 B 🔺
@sentry/cloudflare (withSentry) - minified 210.78 kB - -
@sentry/cloudflare (withSentry) 522.89 kB - -
@sentry/nextjs/cloudflare (withSentry) - minified 228.46 kB - -

View base workflow run

@s1gr1d
s1gr1d force-pushed the sig/tunnel-body-size-limit branch from 5f5fa14 to ab449ec Compare October 19, 2026 14:20
@logaretm
logaretm merged commit f71a0ca into develop Oct 19, 2026
374 of 376 checks passed
@logaretm
logaretm deleted the sig/tunnel-body-size-limit branch October 19, 2026 18:19
logaretm added a commit that referenced this pull request Oct 19, 2026
#25515's 411 and 413 checks run before the header line is read, so an oversized or unlengthed request is
rejected without reading its body.
logaretm added a commit that referenced this pull request Oct 19, 2026
#25515's 411 and 413 checks run before the header line is read, so an oversized or unlengthed request is
rejected without reading its body.
Sign up for free to 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.

2 participants