9.0.0
Version 9.0.0 marks a major release of the Sentry JavaScript SDKs containing breaking changes.
The goal of this release is to trim down unused and potentially confusing APIs, prepare the SDKs for future framework versions to build deeper instrumentation, and remove old polyfills to reduce bundle size.
How To Upgrade
Please carefully read through the migration guide in the Sentry docs on how to upgrade from version 8 to version 9.
Make sure to select your specific platform/framework in the top left corner: https://docs.sentry.io/platforms/javascript/migration/v8-to-v9/
A comprehensive migration guide outlining all changes for all the frameworks can be found within the Sentry JavaScript SDK Repository: https://github.com/getsentry/sentry-javascript/blob/develop/MIGRATION.md
Breaking Changes
- doc(deno)!: Make Deno v2 the minimum supported version (#15085)
- feat!: Bump typescript to
~5.0.0(#14758) - feat!: Drop
nitro-utilspackage (#14998) - feat!: Only collect ip addresses with
sendDefaultPii: true(#15084) - feat!: Remove
autoSessionTrackingoption (#14802) - feat!: Remove
enableTracing(#15078) - feat!: Remove
getCurrentHub(),Hub, andgetCurrentHubShim()(#15122) - feat!: Remove
spanIdfrom propagation context (#14733) - feat!: Remove deprecated and unused code (#15077)
- feat!: Remove metrics API from the JS SDK (#14745)
- feat!: Require Node
>=18as minimum supported version (#14749) - feat(astro)!: Respect user-specified source map setting (#14941)
- feat(browser)!: Remove
captureUserFeedbackmethod (#14820) - feat(build)!: Drop pre-ES2020 polyfills (#14882)
- feat(core)!: Add
normalizedRequesttosamplingContext(#14902) - feat(core)!: Always use session from isolation scope (#14860)
- feat(core)!: Pass root spans to
beforeSendSpanand disallow returningnull(#14831) - feat(core)!: Remove
BAGGAGE_HEADER_NAMEexport (#14785) - feat(core)!: Remove
TransactionNamingSchemetype (#14865) - feat(core)!: Remove
addOpenTelemetryInstrumentationmethod (#14792) - feat(core)!: Remove
arrayifymethod (#14782) - feat(core)!: Remove
debugIntegrationandsessionTimingIntegration(#14747) - feat(core)!: Remove
flattenmethod (#14784) - feat(core)!: Remove
getDomElementmethod (#14797) - feat(core)!: Remove
makeFifoCachemethod (#14786) - feat(core)!: Remove
memoBuilderexport &WeakSetfallback (#14859) - feat(core)!: Remove
transactionContextfromsamplingContext(#14904) - feat(core)!: Remove
urlEncodemethod (#14783) - feat(core)!: Remove deprecated
Requesttype (#14858) - feat(core)!: Remove deprecated request data methods (#14896)
- feat(core)!: Remove standalone
Clientinterface & deprecateBaseClient(#14800) - feat(core)!: Remove validSeverityLevels export (#14765)
- feat(core)!: Stop accepting
eventas argument forrecordDroppedEvent(#14999) - feat(core)!: Stop setting user in
requestDataIntegration(#14898) - feat(core)!: Type sdkProcessingMetadata more strictly (#14855)
- feat(core)!: Update
hasTracingEnabledto consider empty trace config (#14857) - feat(core)!: Update
requestDataIntegrationhandling (#14806) - feat(deno)!: Remove deno prepack (#14829)
- feat(ember)!: Officially drop support for ember
<=3.x(#15032) - feat(nestjs)!: Move
nestIntegrationinto nest sdk and removesetupNestErrorHandler(#14751) - feat(nestjs)!: Remove
@WithSentrydecorator (#14762) - feat(nestjs)!: Remove
SentryService(#14759) - feat(nextjs)!: Don't rely on Next.js Build ID for release names (#14939)
- feat(nextjs)!: Remove
experimental_captureRequestError(#14607) - feat(nextjs)!: Respect user-provided source map generation settings (#14956)
- feat(node)!: Add support for Prisma v6 and drop v5 support (#15120)
- feat(node)!: Avoid http spans by default for custom OTEL setups (#14678)
- feat(node)!: Collect request sessions via HTTP instrumentation (#14658)
- feat(node)!: Remove
processThreadBreadcrumbIntegration(#14666) - feat(node)!: Remove fine grained
registerEsmLoaderHooks(#15002) - feat(opentelemetry)!: Exclusively pass root spans through sampling pipeline (#14951)
- feat(pinia)!: Include state of all stores in breadcrumb (#15312)
- feat(react)!: Raise minimum supported TanStack Router version to
1.63.0(#15030) - feat(react)!: Remove deprecated
getNumberOfUrlSegmentsmethod (#14744) - feat(react)!: Remove deprecated react router methods (#14743)
- feat(react)!: Update
ErrorBoundarycomponentStacktype (#14742) - feat(remix)!: Drop support for Remix v1 (#14988)
- feat(remix)!: Remove
autoInstrumentRemixoption (#15074) - feat(solidstart)!: Default to
--importsetup and addautoInjectServerSentry(#14862) - feat(solidstart)!: No longer export
sentrySolidStartVite(#15143) - feat(solidstart)!: Respect user-provided source map setting (#14979)
- feat(svelte)!: Disable component update tracking by default (#15265)
- feat(sveltekit)!: Drop support for SvelteKit @1.x (#15037)
- feat(sveltekit)!: Remove
fetchProxyScriptNonceoption (#15123) - feat(sveltekit)!: Respect user-provided source map generation settings (#14886)
- feat(utils)!: Remove
@sentry/utilspackage (#14830) - feat(vue)!: Remove configuring Vue tracing options anywhere else other than through the
vueIntegration'stracingOptionsoption (#14856) - feat(vue/nuxt)!: No longer create
"update"spans for component tracking by default (#14602) - fix(node)!: Fix name of
vercelAIIntegrationtoVercelAI(#15298) - fix(vue)!: Remove
logErrorfromvueIntegration(#14958) - ref!: Don't polyfill optional chaining and nullish coalescing (#14603)
- ref(core)!: Cleanup internal types, including
ReportDialogOptions(#14861) - ref(core)!: Mark exceptions from
captureConsoleIntegrationashandled: trueby default (#14734) - ref(core)!: Move
shutdownTimeoutoption type from core to node (#15217) - ref(core)!: Remove
Scopetype interface in favor of usingScopeclass (#14721) - ref(core)!: Remove backwards compatible SentryCarrier type (#14697)
Other Changes
- chore(browser): Export ipAddress helpers for use in other SDKs (#15079)
- deps(node): Bump
import-in-the-middleto1.12.0(#14796) - feat(aws): Rename AWS lambda layer name to
SentryNodeServerlessSDKv9(#14927) - feat(aws-serverless): Upgrade OTEL deps (#15091)
- feat(browser): Set
user.ip_addressexplicitly to{{auto}}(#15008) - feat(core): Add
inheritOrSampleWithhelper totraceSampler(#15277) - feat(core): Emit client reports for unsampled root spans on span start (#14936)
- feat(core): Rename
hasTracingEnabledtohasSpansEnabled(#15309) - feat(core): Streamline
SpanJSONtype (#14693) - feat(deno): Don't bundle
@sentry/deno(#15014) - feat(deno): Don't publish to
deno.land(#15016) - feat(deno): Stop inlining types from core (#14729)
- feat(deps): Bump @opentelemetry/instrumentation-amqplib from 0.45.0 to 0.46.0 (#14835)
- feat(deps): Bump @opentelemetry/instrumentation-aws-lambda from 0.49.0 to 0.50.0 (#14833)
- feat(deps): Bump @opentelemetry/instrumentation-express from 0.46.0 to 0.47.0 (#14834)
- feat(deps): Bump @opentelemetry/instrumentation-mysql2 from 0.44.0 to 0.45.0 (#14836)
- feat(deps): Bump @opentelemetry/propagation-utils from 0.30.14 to 0.30.15 (#14832)
- feat(deps): bump @opentelemetry/context-async-hooks from 1.29.0 to 1.30.0 (#14869)
- feat(deps): bump @opentelemetry/instrumentation-generic-pool from 0.42.0 to 0.43.0 (#14870)
- feat(deps): bump @opentelemetry/instrumentation-knex from 0.43.0 to 0.44.0 (#14872)
- feat(deps): bump @opentelemetry/instrumentation-mongodb from 0.50.0 to 0.51.0 (#14871)
- feat(deps): bump @opentelemetry/instrumentation-tedious from 0.17.0 to 0.18.0 (#14868)
- feat(deps): bump @sentry/cli from 2.39.1 to 2.41.1 (#15173)
- feat(flags): Add Statsig browser integration (#15319)
- feat(gatsby): Preserve user-provided source map settings (#15006)
- feat(nestjs): Remove
SentryTracingInterceptor,SentryGlobalGraphQLFilter,SentryGlobalGenericFilter(#14761) - feat(nextjs): Directly forward
sourcemaps.disableto webpack plugin (#15109) - feat(node): Add
processSessionIntegration(#15081) - feat(node): Add missing
vercelAIIntegrationexport (#15318) - feat(node): Capture exceptions from
worker_threads(#15105) - feat(nuxt): Add enabled to disable Sentry module (#15337)
- feat(nuxt): add
silent,errorHandler,releasetoSourceMapsOptions(#15246) - feat(profiling-node): Use
@sentry-internal/node-cpu-profiler(#15208) - feat(replay): Update fflate to 0.8.2 (#14867)
- feat(solidstart): Add
autoInjectServerSentry: 'experimental_dynamic-import(#14863) - feat(sveltekit): Only inject fetch proxy script for SvelteKit < 2.16.0 (#15126)
- feat(user feedback): Adds draw tool for UF screenshot annotations (#15062)
- feat(user feedback): Adds toolbar for cropping and annotating (#15282)
- feat: Avoid class fields all-together (#14887)
- feat: Only emit
__esModuleproperties in CJS modules when there is a default export (#15018) - feat: Pass
parentSampleRatetotracesSampler(#15024) - feat: Propagate and use a sampling random (#14989)
- fix(browser): Remove
browserPerformanceTimeOriginside-effects (#14025) - fix(core): Ensure debugIds are applied to all exceptions in an event (#14881)
- fix(core): Fork scope if custom scope is passed to
startSpanManual(#14901) - fix(core): Fork scope if custom scope is passed to
startSpan(#14900) - fix(core): Only fall back to
sendDefaultPiifor IP collection inrequestDataIntegration(#15125) - fix(nextjs): Flush with
waitUntilincaptureRequestError(#15146) - fix(nextjs): Use batched devserver symbolication endpoint (#15335)
- fix(node): Don't leak
__spanproperty into breadcrumbs (#14798) - fix(node): Fix sample rand propagation for negative sampling decisions (#15045)
- fix(node): Missing
releasefrom ANR sessions (#15138) - fix(node): Set the correct fallback URL fields for outgoing https requests if they are not defined (#15316)
- fix(nuxt): Detect Azure Function runtime for flushing with timeout (#15288)
- fix(react): From location can be undefined in Tanstack Router Instrumentation (#15235)
- fix(react): Import default for hoistNonReactStatics (#15238)
- fix(react): Support lazy-loaded routes and components. (#15039)
- fix(solidstart): Do not copy release-injection map file (#15302)
- ref(browser): Improve active span handling for
browserTracingIntegration(#14959) - ref(browser): Improve setting of propagation scope for navigation spans (#15108)
- ref(browser): Skip browser extension warning in non-debug builds (#15310)
- ref(browser): Update
supportsHistorycheck & history usage (#14696) - ref(core): Ensure non-recording root spans have frozen DSC (#14964)
- ref(core): Log debug message when capturing error events (#14701)
- ref(core): Move log message about invalid sample rate (#15215)
- ref(node): Streamline check for adding performance integrations (#15021)
- ref(react): Adapt tanstack router type (#15241)
- ref(svelte): Remove SvelteKit detection (#15313)
- ref(sveltekit): Clean up sub-request check (#15251)
Work in this release was contributed by @aloisklink, @arturovt, @aryanvdesh, @benjick, @chris-basebone, @davidturissini, @GrizliK1988, @jahands, @jrandolf, @kunal-511, @maximepvrt, @maxmaxme, @mstrokin, @nathankleyn, @nwalters512, @tannerlinsley, @tjhiggins, and @Zen-cronic. Thank you for your contributions!
Bundle size π¦
| Path | Size |
|---|---|
| @sentry/browser | 22.9 KB |
| @sentry/browser - with treeshaking flags | 22.69 KB |
| @sentry/browser (incl. Tracing) | 35.77 KB |
| @sentry/browser (incl. Tracing, Replay) | 72.58 KB |
| @sentry/browser (incl. Tracing, Replay) - with treeshaking flags | 66.05 KB |
| @sentry/browser (incl. Tracing, Replay with Canvas) | 76.83 KB |
| @sentry/browser (incl. Tracing, Replay, Feedback) | 89.56 KB |
| @sentry/browser (incl. Feedback) | 39.84 KB |
| @sentry/browser (incl. sendFeedback) | 27.53 KB |
| @sentry/browser (incl. FeedbackAsync) | 32.31 KB |
| @sentry/react | 24.73 KB |
| @sentry/react (incl. Tracing) | 37.66 KB |
| @sentry/vue | 27.09 KB |
| @sentry/vue (incl. Tracing) | 37.47 KB |
| @sentry/svelte | 22.94 KB |
| CDN Bundle | 24.13 KB |
| CDN Bundle (incl. Tracing) | 35.84 KB |
| CDN Bundle (incl. Tracing, Replay) | 70.48 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) | 75.62 KB |
| CDN Bundle - uncompressed | 70.59 KB |
| CDN Bundle (incl. Tracing) - uncompressed | 106.46 KB |
| CDN Bundle (incl. Tracing, Replay) - uncompressed | 217.32 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed | 229.89 KB |
| @sentry/nextjs (client) | 38.63 KB |
| @sentry/sveltekit (client) | 36.2 KB |
| @sentry/node | 156.33 KB |
| @sentry/node - without tracing | 97.31 KB |
| @sentry/aws-serverless | 106.82 KB |