matcher parameter optional in makeMultiplexedTransport (#10798)The matcher parameter in makeMultiplexedTransport is now optional with a sensible default. This makes it much easier to use the multiplexed transport for sending events to multiple DSNs based on runtime configuration.
Before:
import { makeFetchTransport, makeMultiplexedTransport } from '@sentry/browser';
const EXTRA_KEY = 'ROUTE_TO';
const transport = makeMultiplexedTransport(makeFetchTransport, args => {
const event = args.getEvent();
if (event?.extra?.[EXTRA_KEY] && Array.isArray(event.extra[EXTRA_KEY])) {
return event.extra[EXTRA_KEY];
}
return [];
});
Sentry.init({
transport,
// ... other options
});
// Capture events with routing info
Sentry.captureException(error, {
extra: {
[EXTRA_KEY]: [
{ dsn: 'https://key1@sentry.io/project1', release: 'v1.0.0' },
{ dsn: 'https://key2@sentry.io/project2' },
],
},
});
After:
import { makeFetchTransport, makeMultiplexedTransport, MULTIPLEXED_TRANSPORT_EXTRA_KEY } from '@sentry/browser';
// Just pass the transport generator - the default matcher handles the rest!
Sentry.init({
transport: makeMultiplexedTransport(makeFetchTransport),
// ... other options
});
// Capture events with routing info using the exported constant
Sentry.captureException(error, {
extra: {
[MULTIPLEXED_TRANSPORT_EXTRA_KEY]: [
{ dsn: 'https://key1@sentry.io/project1', release: 'v1.0.0' },
{ dsn: 'https://key2@sentry.io/project2' },
],
},
});
The default matcher looks for routing information in event.extra[MULTIPLEXED_TRANSPORT_EXTRA_KEY]. You can still provide a custom matcher function for advanced use cases.
This release adds support for cacheComponents on turbopack builds. We are working on adding support for this feature in webpack builds as well.
isolateTrace option to Sentry.withMonitor() (#18079)waitUntil detection (#18336)continueTrace doesn't propagate given trace ID if active span exists (#18328)BUGBOT.md rules to flag invalid op and origin values during review (#18352)| Path | Size |
|---|---|
| @sentry/browser | 24.22 KB |
| @sentry/browser - with treeshaking flags | 22.76 KB |
| @sentry/browser (incl. Tracing) | 40.57 KB |
| @sentry/browser (incl. Tracing, Profiling) | 45.05 KB |
| @sentry/browser (incl. Tracing, Replay) | 78.08 KB |
| @sentry/browser (incl. Tracing, Replay) - with treeshaking flags | 68.05 KB |
| @sentry/browser (incl. Tracing, Replay with Canvas) | 82.65 KB |
| @sentry/browser (incl. Tracing, Replay, Feedback) | 94.61 KB |
| @sentry/browser (incl. Feedback) | 40.51 KB |
| @sentry/browser (incl. sendFeedback) | 28.8 KB |
| @sentry/browser (incl. FeedbackAsync) | 33.66 KB |
| @sentry/react | 25.9 KB |
| @sentry/react (incl. Tracing) | 42.72 KB |
| @sentry/vue | 28.56 KB |
| @sentry/vue (incl. Tracing) | 42.32 KB |
| @sentry/svelte | 24.24 KB |
| CDN Bundle | 26.57 KB |
| CDN Bundle (incl. Tracing) | 41.22 KB |
| CDN Bundle (incl. Tracing, Replay) | 76.9 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) | 82.23 KB |
| CDN Bundle - uncompressed | 78.09 KB |
| CDN Bundle (incl. Tracing) - uncompressed | 122.4 KB |
| CDN Bundle (incl. Tracing, Replay) - uncompressed | 235.71 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed | 248.17 KB |
| @sentry/nextjs (client) | 44.88 KB |
| @sentry/sveltekit (client) | 40.92 KB |
| @sentry/node-core | 50.06 KB |
| @sentry/node | 155.7 KB |
| @sentry/node - without tracing | 90.67 KB |
| @sentry/aws-serverless | 105.61 KB |
Fetched April 3, 2026