Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 24 additions & 9 deletions content/changelog/2026-06-rust-sdk-releases.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Rust SDK Releases — June 2026
slug: 2026-06-rust-sdk-releases
summary: Client report support for SDK-side data discards, new TransportFactory APIs, EnvelopeFilter types, and Hub::with deprecation.
summary: Client report support for SDK-side data discards, transport API modernisation for custom transports, and Hub::with deprecation.
categories:
- SDK
platform:
Expand All @@ -12,16 +12,31 @@ date: 2026-06-30
author: rahulchhabria@sentry.io
---

Releases covered: **0.48.3**
Releases covered:

| Version | Date | Link |
|---------|------|------|
| 0.48.3 | Jun 2026 | [Release notes](https://github.com/getsentry/sentry-rust/releases/tag/0.48.3) |
| 0.48.3 | 2026-06-25 | [Release notes](https://github.com/getsentry/sentry-rust/releases/tag/0.48.3) |

## What changed
## TL;DR

- **Client report support (0.48.3):** The SDK now reports data it discards to Sentry's Stats page — covering transport drops, queue drops, rate-limit backoff, sampling, event processors, and `before_send*` callbacks, with span counts for dropped transactions.
- **New `TransportFactory` APIs (0.48.3):** Added `create_transport_with_options` and transport-specific options types (`ReqwestHttpTransportOptions`, `CurlHttpTransportOptions`, `UreqHttpTransportOptions`, `EmbeddedSVCHttpTransportOptions`) for cleaner custom transport construction.
- **`EnvelopeFilter` / `EnvelopeFilterCallbacks` (0.48.3):** New types to observe envelope items removed by `Envelope::filter`, including attachments dropped alongside their filtered event or transaction.
- **Deprecation (0.48.3):** `Hub::with` is deprecated — use `Hub::current` instead.
- **Bug fix (0.48.3):** Fixed `ureq` transport handling for 429 rate-limit and 413 payload-too-large HTTP responses.
- SDK now reports discarded data to Sentry's Stats page — transport drops, sampling, event processors, and `before_send*` callbacks are all tracked automatically.
- New [`TransportFactory::create_transport_with_options`](https://docs.rs/sentry-core/0.48.3/sentry_core/trait.TransportFactory.html#method.create_transport_with_options) and transport-specific options types for cleaner custom transport construction.
- [`Hub::with`](https://docs.rs/sentry-core/0.48.3/sentry_core/struct.Hub.html#method.with) deprecated — use [`Hub::current()`](https://docs.rs/sentry-core/0.48.3/sentry_core/struct.Hub.html#method.current) instead.
- Fixed `ureq` transport handling of 429 and 413 HTTP responses.

## Release notes

### New Features

0.48.3 makes the SDK automatically track data it discards and report aggregate counts to Sentry's Stats page. Drops from transport layers, background queues, rate-limit backoff, sampling decisions, event processors, and `before_send`/`before_send_transaction` callbacks are all covered. For dropped transactions, span counts are included; for dropped logs and metrics, byte counts are included. No configuration is required — the SDK batches these reports and sends them in future envelopes automatically.

For users who configure built-in transports or who use custom transports, the transport API has been modernised in 0.48.3. [`TransportFactory::create_transport_with_options`](https://docs.rs/sentry-core/0.48.3/sentry_core/trait.TransportFactory.html#method.create_transport_with_options) is added as the preferred way to construct transports. It receives a [`TransportOptions`](https://docs.rs/sentry-core/0.48.3/sentry_core/struct.TransportOptions.html) struct containing only transport-relevant fields (DSN, user agent, proxy settings, TLS configuration) rather than full [`ClientOptions`](https://docs.rs/sentry-core/0.48.3/sentry_core/struct.ClientOptions.html), making custom transports simpler to write. Transport-specific options types are also introduced — [`ReqwestHttpTransportOptions`](https://docs.rs/sentry/0.48.3/sentry/transports/struct.ReqwestHttpTransportOptions.html), [`CurlHttpTransportOptions`](https://docs.rs/sentry/0.48.3/sentry/transports/struct.CurlHttpTransportOptions.html), [`UreqHttpTransportOptions`](https://docs.rs/sentry/0.48.3/sentry/transports/struct.UreqHttpTransportOptions.html), and [`EmbeddedSVCHttpTransportOptions`](https://docs.rs/crate/sentry/0.48.3/source/src/transports/embedded_svc_http.rs) — each with `with_options` constructors. The existing [`TransportFactory::create_transport`](https://docs.rs/sentry-core/0.48.3/sentry_core/trait.TransportFactory.html#method.create_transport) continues to work but now receives [`ClientOptions`](https://docs.rs/sentry-core/0.48.3/sentry_core/struct.ClientOptions.html) reconstructed from [`TransportOptions`](https://docs.rs/sentry-core/0.48.3/sentry_core/struct.TransportOptions.html), which only includes transport-relevant fields. Nothing changes for users who use the built-in transports without customizations.

### Deprecations

0.48.3 deprecates [`Hub::with`](https://docs.rs/sentry-core/0.48.3/sentry_core/struct.Hub.html#method.with). Use [`Hub::current()`](https://docs.rs/sentry-core/0.48.3/sentry_core/struct.Hub.html#method.current) to access the current hub.

### Bug Fixes

The `ureq` HTTP transport was not correctly handling 429 (Too Many Requests) and 413 (Payload Too Large) response codes. Both are now processed as the appropriate transport-level errors.