Introducing Sentry’s Flutter SDK 9.0 - Logs, Session Replay, Feature Flags, and more

ON THIS PAGE
- Session Replay For Mobile in Flutter
- Logs (now in open beta)
- Feature Flags
- Native JS error support for Flutter Web
- Release Health For Flutter Web
- Improved linking between traces and errors
- Get started with Flutter SDK v9
If you've ever had to debug a Flutter app after an error report that just says “Null check operator used on a null value,” you already know: context is everything. And context can be hard to come by when you’re juggling native code, Dart, async stack traces, and platform channels. With v9 of our Flutter SDK, we’re introducing some features to help you get even more visibility into what’s going wrong, with the insights to make it better. Here’s what’s new:
General availability support for Session Replay for mobile, so you can see what your users saw (and did) before the crash.
Feature flag support to understand which flags were enabled when bugs happened.
Support for Logs (now in Open Beta), which correlates logs with crashes and performance issues.
Native JS error support for better visibility into Flutter Web apps using JS interop.
Release Health support for Flutter Web, giving you better insight into release adoption, stability, and crash-free sessions.
Improved linking between Traces and Errors to correlate issues with specific spans in your application code.
Crash reports are helpful, but sometimes you need to see what went wrong. What button was tapped? What screen were they on? Without visual context, you can be left guessing.
With Session Replay for mobile, you can now see a video-like reconstruction of exactly what your users saw and did before the crash (by default, our privacy configuration redacts all text and images to ensure no sensitive user information is collected). Let’s say your Flutter app has a custom keyboard that occasionally disappears when a user on an ancient Android device tries to submit a form. That can be tricky to debug with just logs. Now? Just replay the session. You'll see that the user tapped the input, the keyboard flickered, and then - no submission. Read more about Session Replay
Sometimes the key to understanding an issue is hidden in the logs. But most logging systems don’t correlate logs with crashes or performance anomalies — they’re just adjacent, disconnected data.
With Log Support, now in open beta, Sentry lets you ingest structured logs and view them in the context of errors and traces. That means when your catchError()
handler swallows an exception, the logs still tell the story.
Let’s say your app reports a timeout error during login. With logs, you can trace the sequence: Auth API request started → retry #1 → retry #2 →
failed. Suddenly, the root cause is obvious — flaky backend, not a UI bug. Learn about Logs (Open Beta) in Sentry
Modern Flutter apps often use feature flags to test UI variants or control rollout of backend-dependent features. But when things break, how do you know what was enabled?
Sentry can capture active flags as part of the event payload. That means when an issue comes in, you’ll immediately see which features were turned on in the issue details page. No guessing, no digging.
Let’s say your users are reporting that the app crashes when they switch themes in the settings menu. With feature flag context in Sentry, you can check the issue and see featureFlag.new_theme_engine: enabled
. Now you know the crash is isolated to users in the experimental group testing your new theme system — not everyone using the app. That’s instant scoping without sifting through logs or rollout configs. See how feature flag context works in Sentry
If you’re shipping a Flutter Web app, you’re already living between the worlds of Dart and JS. Until now, uncaught exceptions in JavaScript — including third-party scripts — often flew under the radar for Flutter Web.
Sentry now captures those JS errors alongside Dart errors automatically and without further configuration, so your issue list reflects the real-world user experience, not just the Dart VM’s perspective. If a third-party analytics script crashes your checkout page, you’ll know.
If you find yourself asking questions like "Was this a one-off crash, or are 20% of users affected?" Or "Did that last deploy reduce our crash rate?" without answers when pushing releases on Flutter Web, help is on the way.
Now when you push out new releases Sentry will automatically track crash-free sessions, adoption, and user retention for your web-based Flutter app — just like for mobile. It's visibility that lets you ship with more confidence (or roll back before your users let you know about problems). Learn more about Release Health
In previous versions of the Sentry Flutter SDK, errors and performance traces were often reported separately, making it challenging to correlate issues with specific spans in your application's execution. For instance, a UI error might appear in isolation, disconnected from the associated page load or user interaction trace.
With v9, we've enhanced the SDK to automatically link errors to their corresponding traces and spans. This means that when an error occurs, you'll see it in the context of the related performance trace, providing a comprehensive view of the event's impact on your application's behavior. This improvement simplifies debugging by allowing you to trace errors back to their source within the application's execution flow.
This enhancement addresses a previously reported issue where errors were not being linked to spans in traces, improving the observability and debuggability of Flutter applications
Sentry Flutter SDK v9 is available now. Give it a try and let us know what you think on Discord or GitHub. Or, if you’re new to Sentry, get started for free.