From b4f4bd759584ab70b8179c54e6c0d5bc86656fb1 Mon Sep 17 00:00:00 2001 From: Dan Federman Date: Thu, 30 Oct 2025 15:01:43 -0700 Subject: [PATCH 1/7] Do not retry 4xx uploads --- Sources/Sentry/SentryHttpTransport.m | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Sources/Sentry/SentryHttpTransport.m b/Sources/Sentry/SentryHttpTransport.m index f673a1f4294..cdf1db1975b 100644 --- a/Sources/Sentry/SentryHttpTransport.m +++ b/Sources/Sentry/SentryHttpTransport.m @@ -414,6 +414,13 @@ - (void)sendEnvelope:(SentryEnvelope *)envelope return; } + if (response.statusCode >= 400 && response.statusCode < 500) { + SENTRY_LOG_DEBUG(@"Received 4xx response code: %li", (long)response.statusCode); + // 4xx means the payload is bad and will not succeed on retry. Drop it on the floor and enable sending the next one. + [weakSelf deleteEnvelopeAndSendNext:envelopePath]; + return; + } + SENTRY_LOG_DEBUG(@"Received non-200 response code: %li", (long)response.statusCode); [weakSelf finishedSending]; }]; From 64269974690799c8262abe17f7e3e380c922646c Mon Sep 17 00:00:00 2001 From: Dan Federman Date: Thu, 30 Oct 2025 15:07:22 -0700 Subject: [PATCH 2/7] Changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 52186a47385..0fe95e57f14 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -49,6 +49,7 @@ - Add layer class filtering for views used in multiple contexts (e.g., SwiftUI._UIGraphicsView) - Improve transform calculations for views with custom anchor points - Fix axis-aligned transform detection for optimized opaque view clipping +- Fix issue where a too-large breadcrumb would prevent future errors and messages from being uploaded (#6617) ### Improvements From 05fd99a51381aa23f876eeacfb2ac5f52cc6ab65 Mon Sep 17 00:00:00 2001 From: Dan Federman Date: Thu, 30 Oct 2025 15:08:21 -0700 Subject: [PATCH 3/7] Correct PR number --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0fe95e57f14..d8eb294d591 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -49,7 +49,7 @@ - Add layer class filtering for views used in multiple contexts (e.g., SwiftUI._UIGraphicsView) - Improve transform calculations for views with custom anchor points - Fix axis-aligned transform detection for optimized opaque view clipping -- Fix issue where a too-large breadcrumb would prevent future errors and messages from being uploaded (#6617) +- Fix issue where a too-large breadcrumb would prevent future errors and messages from being uploaded (#6618) ### Improvements From cf3277019126ca05a0f92079eae4862715881122 Mon Sep 17 00:00:00 2001 From: Dan Federman Date: Thu, 30 Oct 2025 15:13:43 -0700 Subject: [PATCH 4/7] exclude 429 --- Sources/Sentry/SentryHttpTransport.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/Sentry/SentryHttpTransport.m b/Sources/Sentry/SentryHttpTransport.m index cdf1db1975b..d29cd6398f7 100644 --- a/Sources/Sentry/SentryHttpTransport.m +++ b/Sources/Sentry/SentryHttpTransport.m @@ -414,7 +414,7 @@ - (void)sendEnvelope:(SentryEnvelope *)envelope return; } - if (response.statusCode >= 400 && response.statusCode < 500) { + if (error && response.statusCode >= 400 && response.statusCode < 500 && response.statusCode != 429) { SENTRY_LOG_DEBUG(@"Received 4xx response code: %li", (long)response.statusCode); // 4xx means the payload is bad and will not succeed on retry. Drop it on the floor and enable sending the next one. [weakSelf deleteEnvelopeAndSendNext:envelopePath]; From b81276ccc5df5fafac2dd18dcb82e05713adb606 Mon Sep 17 00:00:00 2001 From: Dan Federman Date: Thu, 30 Oct 2025 15:14:46 -0700 Subject: [PATCH 5/7] record lost event --- Sources/Sentry/SentryHttpTransport.m | 1 + 1 file changed, 1 insertion(+) diff --git a/Sources/Sentry/SentryHttpTransport.m b/Sources/Sentry/SentryHttpTransport.m index d29cd6398f7..8aa98bdb5ab 100644 --- a/Sources/Sentry/SentryHttpTransport.m +++ b/Sources/Sentry/SentryHttpTransport.m @@ -417,6 +417,7 @@ - (void)sendEnvelope:(SentryEnvelope *)envelope if (error && response.statusCode >= 400 && response.statusCode < 500 && response.statusCode != 429) { SENTRY_LOG_DEBUG(@"Received 4xx response code: %li", (long)response.statusCode); // 4xx means the payload is bad and will not succeed on retry. Drop it on the floor and enable sending the next one. + [weakSelf recordLostEventFor:envelope.items]; [weakSelf deleteEnvelopeAndSendNext:envelopePath]; return; } From 580e603eaa59c4a35164cc2229c7797b43ff6bff Mon Sep 17 00:00:00 2001 From: Dan Federman Date: Thu, 30 Oct 2025 15:18:33 -0700 Subject: [PATCH 6/7] don't rely on error --- Sources/Sentry/SentryHttpTransport.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/Sentry/SentryHttpTransport.m b/Sources/Sentry/SentryHttpTransport.m index 8aa98bdb5ab..bf66811f43c 100644 --- a/Sources/Sentry/SentryHttpTransport.m +++ b/Sources/Sentry/SentryHttpTransport.m @@ -414,7 +414,7 @@ - (void)sendEnvelope:(SentryEnvelope *)envelope return; } - if (error && response.statusCode >= 400 && response.statusCode < 500 && response.statusCode != 429) { + if (response.statusCode >= 400 && response.statusCode < 500 && response.statusCode != 429) { SENTRY_LOG_DEBUG(@"Received 4xx response code: %li", (long)response.statusCode); // 4xx means the payload is bad and will not succeed on retry. Drop it on the floor and enable sending the next one. [weakSelf recordLostEventFor:envelope.items]; From 496d7bf29fc73e342c279b3c997385c97b228677 Mon Sep 17 00:00:00 2001 From: Dan Federman Date: Thu, 30 Oct 2025 15:20:14 -0700 Subject: [PATCH 7/7] do not double record --- Sources/Sentry/SentryHttpTransport.m | 1 - 1 file changed, 1 deletion(-) diff --git a/Sources/Sentry/SentryHttpTransport.m b/Sources/Sentry/SentryHttpTransport.m index bf66811f43c..af8ee188ca6 100644 --- a/Sources/Sentry/SentryHttpTransport.m +++ b/Sources/Sentry/SentryHttpTransport.m @@ -417,7 +417,6 @@ - (void)sendEnvelope:(SentryEnvelope *)envelope if (response.statusCode >= 400 && response.statusCode < 500 && response.statusCode != 429) { SENTRY_LOG_DEBUG(@"Received 4xx response code: %li", (long)response.statusCode); // 4xx means the payload is bad and will not succeed on retry. Drop it on the floor and enable sending the next one. - [weakSelf recordLostEventFor:envelope.items]; [weakSelf deleteEnvelopeAndSendNext:envelopePath]; return; }