Troubleshoot and resolve edge cases regarding known limitations and bundling.

If you need help solving issues with Sentry's Flutter SDK, you can read the edge cases documented here. If you need additional help, you can ask on GitHub. Customers on a paid plan may also contact support.

Starting May 1, 2024, Apple requires all apps submitted to the App Store to provide a list of privacy-related APIs they use, including the reasons under which they use it. If you received an email from Apple with the message "ITMS-91053: Missing API declaration", your app doesn't fulfill the requirements. To solve this, follow our Apple Privacy Manifest guide.

  • If you enable the split-debug-info and obfuscate features, you must upload debug symbols.
  • Issue titles might be obfuscated as we rely on the runtimeType, but they may not be human-readable. See the Obfuscate Caveat.
  • Layout related errors are only caught by FlutterError.onError in debug mode. In release mode, they are removed by the Flutter framework. See Flutter build modes.
  • Use inbound filters to exclude unhandled errors that are caught outside of your application in release builds. The SDK cannot filter these directly due to obfuscated stack traces.
  • If your app runs on Windows and uses a Flutter version below 3.3.0, you need to set the version and build number manually, see this issue on GitHub. To do so:
    • Use Dart defines to build the app: flutter build windows --dart-define=SENTRY_RELEASE=my_app@1.0.0+1
    • Or, set the release on SentryOptions options.release = 'my_app@1.0.0+1' during SDK initialization.

The Sentry Flutter SDK includes the Sentry Android SDK, which bundles multiple native libraries for multiple ABIs. Building a Flutter app for a specific ABI using the --target-platform argument, for example an ARM 32bit apk, looks like this, which should also include the --split-per-abi flag:

flutter build apk --target-platform=android-arm --split-per-abi

The configuration for symbolication of Native events (C/C++) is documented in our Android Native Development Kit content. If you are having issues with symbolication in Flutter, check that your configuration is correct, as discussed in our Flutter content that covers Uploading for Android NDK

Flutter split-debug-info and obfuscate flags are supported on iOS/macOS. They require compiling your app using Flutter, version 3.7.0 and above and the Sentry Flutter SDK, version 6.10.0 and above.

Source Context support requires compiling your app using the split-debug-info build parameter on Flutter 3.10.0 and above. You must also upload debug symbols with the upload_sources option enabled.

If you are using the Sentry Dart Plugin to upload Debug Symbols, refer to the points below to resolve potential issues.

A Sentry auth_token can be generated at the Organization Auth Tokens settings page.

Dart's --obfuscate option is required to be paired with --split-debug-info to generate a symbol map. See Dart docs for more information.

The --split-debug-info option requires setting an output directory. The directory must be an inner folder of the project's folder. See Flutter docs for more information.

Flutter's build web command requires setting the --source-maps parameter to generate source maps. See Flutter GitHub Issue for more information.

There is an issue with the Sentry Flutter SDK where apps can crash if taking screenshots in the background.

This is an issue with Flutter itself and should be fixed in Flutter 3.15.

For prior versions, you can work around this by configuring the SDK only to take screenshots when the app is in the resumed state. To do this, set SentryFlutterOptions.attachScreenshotOnlyWhenResumed to true.

Help improve this content
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").