Skip to content

Conversation

@s1gr1d
Copy link
Member

@s1gr1d s1gr1d commented Jan 14, 2026

Sentry changed IPs and this caused problems with client report sending.

The current problem is that client report sending is stuck in a loop if the client report itself cannot be sent:
Event fails → Client Report #1 fails → Client Report #2 fails → Client Report #3 fails → ∞

With this fix, failed client reports are not sent anymore to prevent this infinite feedback loop.

The offline transport already drops client reports when they cannot be sent:

// We want to drop client reports because they can be generated when we retry sending events while offline.
if (envelopeContainsItemType(env, ['client_report'])) {
return false;
}

I tested this locally by adding an entry to /etc/hosts: 0.0.0.0 o1.ingest.sentry.io (the example in the issue below)

Closes #18802

@github-actions
Copy link
Contributor

github-actions bot commented Jan 14, 2026

size-limit report 📦

Path Size % Change Change
@sentry/browser 25.11 kB +0.23% +56 B 🔺
@sentry/browser - with treeshaking flags 23.61 kB +0.14% +31 B 🔺
@sentry/browser (incl. Tracing) 41.85 kB +0.13% +54 B 🔺
@sentry/browser (incl. Tracing, Profiling) 46.44 kB +0.13% +59 B 🔺
@sentry/browser (incl. Tracing, Replay) 80.46 kB +0.07% +53 B 🔺
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags 70.15 kB +0.04% +26 B 🔺
@sentry/browser (incl. Tracing, Replay with Canvas) 85.16 kB +0.07% +55 B 🔺
@sentry/browser (incl. Tracing, Replay, Feedback) 97.36 kB +0.06% +51 B 🔺
@sentry/browser (incl. Feedback) 41.83 kB +0.14% +58 B 🔺
@sentry/browser (incl. sendFeedback) 29.79 kB +0.21% +60 B 🔺
@sentry/browser (incl. FeedbackAsync) 34.79 kB +0.17% +56 B 🔺
@sentry/browser (incl. Metrics) 26.21 kB +0.22% +56 B 🔺
@sentry/browser (incl. Logs) 26.37 kB +0.27% +69 B 🔺
@sentry/browser (incl. Metrics & Logs) 27.02 kB +0.22% +57 B 🔺
@sentry/react 26.84 kB +0.21% +56 B 🔺
@sentry/react (incl. Tracing) 44.07 kB +0.14% +58 B 🔺
@sentry/vue 29.56 kB +0.19% +55 B 🔺
@sentry/vue (incl. Tracing) 43.66 kB +0.14% +57 B 🔺
@sentry/svelte 25.12 kB +0.24% +58 B 🔺
CDN Bundle 27.61 kB +0.15% +40 B 🔺
CDN Bundle (incl. Tracing) 42.58 kB +0.06% +24 B 🔺
CDN Bundle (incl. Tracing, Replay) 79.28 kB +0.04% +26 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback) 84.7 kB +0.03% +25 B 🔺
CDN Bundle - uncompressed 80.89 kB +0.1% +73 B 🔺
CDN Bundle (incl. Tracing) - uncompressed 126.28 kB +0.06% +73 B 🔺
CDN Bundle (incl. Tracing, Replay) - uncompressed 242.81 kB +0.04% +73 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed 255.6 kB +0.03% +73 B 🔺
@sentry/nextjs (client) 46.42 kB +0.12% +53 B 🔺
@sentry/sveltekit (client) 42.23 kB +0.14% +56 B 🔺
@sentry/node-core 51.91 kB +0.11% +52 B 🔺
@sentry/node 162.15 kB +0.04% +49 B 🔺
@sentry/node - without tracing 93.33 kB +0.05% +45 B 🔺
@sentry/aws-serverless 108.83 kB +0.05% +46 B 🔺

View base workflow run

@github-actions
Copy link
Contributor

github-actions bot commented Jan 14, 2026

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.

Scenario Requests/s % of Baseline Prev. Requests/s Change %
GET Baseline 9,199 - 8,773 +5%
GET With Sentry 1,727 19% 1,663 +4%
GET With Sentry (error only) 6,050 66% 6,019 +1%
POST Baseline 1,049 - 1,181 -11%
POST With Sentry 579 55% 577 +0%
POST With Sentry (error only) 1,041 99% 1,060 -2%
MYSQL Baseline 3,304 - 3,299 +0%
MYSQL With Sentry 480 15% 438 +10%
MYSQL With Sentry (error only) 2,720 82% 2,676 +2%

View base workflow run

@s1gr1d s1gr1d enabled auto-merge (squash) January 14, 2026 10:37
@s1gr1d s1gr1d merged commit ad3dd01 into develop Jan 14, 2026
404 of 407 checks passed
@s1gr1d s1gr1d deleted the sig/client-reports-fix branch January 14, 2026 13:42
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.

Infinite background loop if ECONNREFUSED from oN.ingest.sentry.io

5 participants