Skip to content

fix(transport): Handle HTTP 413 with actionable log and use send_error for HTTP errors#5115

Merged
adinauer merged 5 commits intomainfrom
fix/handle-http-413
Mar 2, 2026
Merged

fix(transport): Handle HTTP 413 with actionable log and use send_error for HTTP errors#5115
adinauer merged 5 commits intomainfrom
fix/handle-http-413

Conversation

@adinauer
Copy link
Member

Relay now returns HTTP 413 instead of HTTP 400 for oversized envelopes
(relay#5474). Previously
the SDK treated 413 like any other 4xx error with a generic log message,
giving users no indication of why their data was dropped.

This adds a specific, actionable error message when receiving HTTP 413,
suggesting users reduce the size of events, breadcrumbs, or attachments,
and pointing them to the SentryOptions.onOversizedEvent callback.

Also switches the client report discard reason for all HTTP 4xx/5xx errors
(except 429) from network_error to send_error, matching the
client reports spec and
aligning with sentry-python and sentry-cocoa. network_error is now
reserved for actual connectivity failures (IOException, transport gate
not connected).

Changes:

  • DiscardReason.java — Added SEND_ERROR("send_error")
  • HttpConnection.java — 413-specific log message in readAndLog()
  • AsyncHttpTransport.java — 413-specific log message + SEND_ERROR for all HTTP errors
  • ApacheHttpClientTransport.java — Same as above

Fixes #5050

…r for HTTP errors

Log a specific, actionable error message when Relay returns HTTP 413
(Content Too Large) instead of the generic "Request failed" message.
The message suggests reducing event/breadcrumb/attachment sizes and
mentions the `SentryOptions.onOversizedEvent` callback.

Also switch the client report discard reason for all HTTP 4xx/5xx
errors (except 429) from `network_error` to `send_error`, matching
the client reports spec and aligning with sentry-python and
sentry-cocoa.

Fixes GH-5050
Co-Authored-By: Claude <noreply@anthropic.com>
@github-actions
Copy link
Contributor

🚨 Detected changes in high risk code 🚨

High-risk code has higher potential to break the SDK and may be hard to test. To prevent severe bugs, apply the rollout process for releasing such changes and be extra careful when changing and reviewing these files:

  • sentry-apache-http-client-5/src/main/java/io/sentry/transport/apache/ApacheHttpClientTransport.java
  • sentry/src/main/java/io/sentry/transport/AsyncHttpTransport.java
  • sentry/src/main/java/io/sentry/transport/HttpConnection.java

@github-actions
Copy link
Contributor

github-actions bot commented Feb 25, 2026

Semver Impact of This PR

🟢 Patch (bug fixes)

📋 Changelog Preview

This is how your changes will appear in the changelog.
Entries from this PR are highlighted with a left border (blockquote style).


New Features ✨

  • (otel) Create sentry-opentelemetry-otlp module for combining OpenTelemetry SDK OTLP export with Sentry SDK by adinauer in #5100
  • (screenshot) Add screenshot masking using view hierarchy by romtsn in #5077

Bug Fixes 🐛

  • (transport) Handle HTTP 413 with actionable log and use send_error for HTTP errors by adinauer in #5115
  • Trim DSN string before URI parsing by adinauer in #5113
  • Safe unregister SystemEventsBroadcastReceiver by kollesnica1337 in #5106

Internal Changes 🔧

Deps

  • Bump getsentry/craft from 2.21.7 to 2.23.1 by dependabot in #5129
  • Update Native SDK to v0.13.1 by github-actions in #5104
  • Bump actions/upload-artifact from 6 to 7 by dependabot in #5130
  • Bump actions/download-artifact from 7 to 8 by dependabot in #5132
  • Bump gradle/actions from 5.0.1 to 5.0.2 by dependabot in #5131
  • Bump github/codeql-action from 4.32.2 to 4.32.4 by dependabot in #5109
  • Bump getsentry/craft from 2.21.2 to 2.21.7 by dependabot in #5110

🤖 This preview updates automatically when you update the PR.

Co-Authored-By: Claude <noreply@anthropic.com>
@github-actions
Copy link
Contributor

🚨 Detected changes in high risk code 🚨

High-risk code has higher potential to break the SDK and may be hard to test. To prevent severe bugs, apply the rollout process for releasing such changes and be extra careful when changing and reviewing these files:

  • sentry-apache-http-client-5/src/main/java/io/sentry/transport/apache/ApacheHttpClientTransport.java
  • sentry/src/main/java/io/sentry/transport/AsyncHttpTransport.java
  • sentry/src/main/java/io/sentry/transport/HttpConnection.java

@adinauer adinauer marked this pull request as ready for review February 25, 2026 09:42
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

@github-actions
Copy link
Contributor

github-actions bot commented Feb 25, 2026

Performance metrics 🚀

  Plain With Sentry Diff
Startup time 346.53 ms 405.54 ms 59.01 ms
Size 1.58 MiB 2.29 MiB 723.38 KiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
e59e22a 329.74 ms 383.31 ms 53.57 ms
fc5ccaf 270.49 ms 363.90 ms 93.41 ms
d15471f 361.89 ms 378.07 ms 16.18 ms
d15471f 322.58 ms 396.08 ms 73.50 ms
abfcc92 304.04 ms 370.33 ms 66.29 ms
91bb874 310.68 ms 359.24 ms 48.56 ms
ab8a72d 316.24 ms 356.38 ms 40.14 ms
d15471f 286.65 ms 314.68 ms 28.03 ms
6727e14 337.22 ms 373.94 ms 36.71 ms
f064536 329.00 ms 395.62 ms 66.62 ms

App size

Revision Plain With Sentry Diff
e59e22a 1.58 MiB 2.20 MiB 635.34 KiB
fc5ccaf 1.58 MiB 2.13 MiB 557.54 KiB
d15471f 1.58 MiB 2.13 MiB 559.54 KiB
d15471f 1.58 MiB 2.13 MiB 559.54 KiB
abfcc92 1.58 MiB 2.13 MiB 557.31 KiB
91bb874 1.58 MiB 2.13 MiB 559.07 KiB
ab8a72d 1.58 MiB 2.12 MiB 551.55 KiB
d15471f 1.58 MiB 2.13 MiB 559.54 KiB
6727e14 1.58 MiB 2.28 MiB 718.64 KiB
f064536 1.58 MiB 2.20 MiB 633.90 KiB

Previous results on branch: fix/handle-http-413

Startup times

Revision Plain With Sentry Diff
44bfea4 327.60 ms 387.68 ms 60.08 ms
1ac1ac4 326.47 ms 368.46 ms 41.99 ms
e364cff 328.61 ms 384.38 ms 55.77 ms

App size

Revision Plain With Sentry Diff
44bfea4 1.58 MiB 2.29 MiB 721.11 KiB
1ac1ac4 1.58 MiB 2.29 MiB 723.39 KiB
e364cff 1.58 MiB 2.29 MiB 720.01 KiB

@github-actions
Copy link
Contributor

github-actions bot commented Mar 2, 2026

🚨 Detected changes in high risk code 🚨

High-risk code has higher potential to break the SDK and may be hard to test. To prevent severe bugs, apply the rollout process for releasing such changes and be extra careful when changing and reviewing these files:

  • sentry-apache-http-client-5/src/main/java/io/sentry/transport/apache/ApacheHttpClientTransport.java
  • sentry/src/main/java/io/sentry/transport/AsyncHttpTransport.java
  • sentry/src/main/java/io/sentry/transport/HttpConnection.java

Copy link
Member

@romtsn romtsn left a comment

Choose a reason for hiding this comment

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

LGTM!

Switch client report discard reason for HTTP 4xx/5xx errors.
@github-actions
Copy link
Contributor

github-actions bot commented Mar 2, 2026

🚨 Detected changes in high risk code 🚨

High-risk code has higher potential to break the SDK and may be hard to test. To prevent severe bugs, apply the rollout process for releasing such changes and be extra careful when changing and reviewing these files:

  • sentry-apache-http-client-5/src/main/java/io/sentry/transport/apache/ApacheHttpClientTransport.java
  • sentry/src/main/java/io/sentry/transport/AsyncHttpTransport.java
  • sentry/src/main/java/io/sentry/transport/HttpConnection.java

@adinauer adinauer enabled auto-merge (squash) March 2, 2026 15:56
@github-actions
Copy link
Contributor

github-actions bot commented Mar 2, 2026

🚨 Detected changes in high risk code 🚨

High-risk code has higher potential to break the SDK and may be hard to test. To prevent severe bugs, apply the rollout process for releasing such changes and be extra careful when changing and reviewing these files:

  • sentry-apache-http-client-5/src/main/java/io/sentry/transport/apache/ApacheHttpClientTransport.java
  • sentry/src/main/java/io/sentry/transport/AsyncHttpTransport.java
  • sentry/src/main/java/io/sentry/transport/HttpConnection.java

@adinauer adinauer merged commit 9054d65 into main Mar 2, 2026
62 of 65 checks passed
@adinauer adinauer deleted the fix/handle-http-413 branch March 2, 2026 16:26
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.

SDK Handling HTTP 413 [Java]

2 participants