8.11.0-beta.1
Pre-release
Pre-release
Features
- Windows native error & obfuscation support (#2286, #2426)
- Improve app start measurements by using
addTimingsCallback
instead ofaddPostFrameCallback
to determine app start end (#2405)⚠️ This change may result in reporting of shorter app start durations
- Improve frame tracking accuracy (#2372)
- Introduces
SentryWidgetsFlutterBinding
that tracks a frame starting fromhandleBeginFrame
and ending inhandleDrawFrame
, this is approximately the buildDuration time - By default,
SentryFlutter.init()
automatically initializesSentryWidgetsFlutterBinding
through theWidgetsFlutterBindingIntegration
- If you need to initialize the binding before
SentryFlutter.init
, useSentryWidgetsFlutterBinding.ensureInitialized
instead ofWidgetsFlutterBinding.ensureInitialized
:
void main() async { // Replace WidgetsFlutterBinding.ensureInitialized() SentryWidgetsFlutterBinding.ensureInitialized(); await SentryFlutter.init(...); runApp(MyApp()); }
⚠️ Frame tracking will be disabled if a different binding is used
- Introduces
Enhancements
- Only send debug images referenced in the stacktrace for events (#2329)
- Remove
sentry
frames if SDK falls back to current stack trace (#2351)- Flutter doesn't always provide stack traces for unhandled errors - this is normal Flutter behavior
- When no stack trace is provided (in Flutter errors,
captureException
, orcaptureMessage
):- SDK creates a synthetic trace using
StackTrace.current
- Internal SDK frames are removed to reduce noise
- SDK creates a synthetic trace using
- Original stack traces (when provided) are left unchanged
Fixes
- Apply default IP address (
{{auto}}
) to transactions (#2395)- Previously, transactions weren't getting the default IP address when user context was loaded
- Now consistently applies default IP address to both events and transactions when:
- No user context exists
- User context exists but IP address is null