Prerequisites
- Review the v10 changelog
- Compatible with Sentry self-hosted 24.4.2 or higher
- Test in a non-production environment first
Version Support Changes
Installation
Major Changes from v9
1. Removed APIs
Hub API Completely Removed
The Hub API was deprecated in v8 and is now fully removed in v9+. Before (v8):Metrics API Removed
The metrics beta has ended. All metrics APIs have been removed.Debug Integration Removed
Before (v8):beforeSend hook to log events:
2. OpenTelemetry v2 (v10)
Version 10 upgrades OpenTelemetry dependencies from v1 to v2. Node.js Impact: All OpenTelemetry instrumentations have been updated. If you use custom OpenTelemetry instrumentations, you may need to update them:3. Behavior Changes
beforeSendSpan Changes (v9)
You can no longer drop spans by returningnull from beforeSendSpan.
Before (v8):
First Input Delay (FID) Removed (v10)
FID web vital has been removed as it’s deprecated by Google.IP Address Collection (v10.4+)
IP address inference now respectssendDefaultPii:
Before (v10.0-10.3):
4. AWS Lambda Layer Changes
Version 10 Layer:Framework-Specific Changes
Next.js
Source Maps (v9)
Client-side source maps are now automatically deleted after upload: Before (v8):Build ID as Release (v9)
Next.js Build ID is no longer used as the release name:SvelteKit (v9)
Remix v1.x is no longer supported. Upgrade to v2+.React (v9)
Error Boundary Types
Error types are nowunknown instead of Error:
Before (v8):
Node.js (v9)
processThreadBreadcrumbIntegration Renamed
Before (v8):Prisma v6 (v9)
Prisma integration now supports v6 by default:Step-by-Step Migration
From v8 to v9
1. Update Dependencies:Sentry.metrics.* calls.
5. Test:
- Error capturing
- Performance monitoring
- Custom instrumentation
From v9 to v10
1. Update Dependencies:- All functionality still works
- OpenTelemetry instrumentations work
- Web vitals are captured (INP instead of FID)
Migration Checklist
v8 to v9
- Update all
@sentry/*packages to v9 - Remove all Hub API usage
- Remove metrics API calls
- Update
beforeSendSpanlogic - Update React error boundary types
- Rename
processThreadBreadcrumbIntegrationtochildProcessIntegration - Test error capturing
- Test performance monitoring
v9 to v10
- Verify Node.js version ≥ 18.0.0
- Verify TypeScript version ≥ 5.0.4
- Update all
@sentry/*packages to v10 - Update OpenTelemetry instrumentations to v2
- Set
sendDefaultPiiif you need IP addresses - Update AWS Lambda layer ARN (if using)
- Test OpenTelemetry instrumentations
- Verify web vitals capture (INP vs FID)
Common Issues
Type errors after upgrading
Type errors after upgrading
Issue: TypeScript errors about incompatible typesSolution: Upgrade TypeScript to 5.0.4 or higher:
OpenTelemetry instrumentation not working
OpenTelemetry instrumentation not working
Issue: Custom OpenTelemetry instrumentations stopped working in v10Solution: Update instrumentations to v2-compatible versions:
Missing IP addresses in events
Missing IP addresses in events
Issue: User IP addresses no longer captured (v10.4+)Solution: Enable
sendDefaultPii:Hub API errors
Hub API errors
Issue:
getCurrentHub is not a functionSolution: Replace with new API:Quick Reference: API Changes
| v8 API | v9+ API |
|---|---|
getCurrentHub() | getClient(), getCurrentScope() |
configureScope() | getCurrentScope().method() |
Hub.getClient() | getClient() |
beforeSendSpan returns null | Use integration shouldCreateSpan* |
metrics.increment() | Removed |
debugIntegration() | Use beforeSend hook |
processThreadBreadcrumbIntegration | childProcessIntegration |
Getting Help
If you encounter issues:- Check the v9 migration guide
- Check the v10 migration guide
- Search GitHub issues
- Ask in Discord
Next Steps
General Upgrading Guide
Best practices for upgrading Sentry
Custom Integrations
Build custom integrations