Open flodaniel opened 3 days ago
Hi @flodaniel,
thank you for the message,
the stack trace you are seeing is attached by the SDK in case the original exception, in this case PhoenixException
does not contain its own stack trace.
Could you share you current implementation of the beforeSend
and how do you capture the PhoenixException
, does it contain stack trace?
Thank you for the reply. I did not know that! This is my shortened beforeSend method:
static FutureOr<SentryEvent?> beforeSend(SentryEvent event, Hint hint) {
final throwable = event.throwable;
/// here are actually much more checks for all kind of other exceptions
/// used by knock as a socket connection
if (throwable is PhoenixException) {
return null;
}
return event;
}
This is how I set up sentry. I am not using the appRunner due to https://github.com/getsentry/sentry-dart/issues/1943#issuecomment-2185880234
void main() async {
await runZonedGuarded(() async {
await SentryFlutter.init(
(options) {
options
..dsn = 'DNS'
..tracesSampleRate = 0.5
..profilesSampleRate = Endpoint.current.isProduction() ? 0.5 : 0
..environment = Endpoint.current.name
..beforeSend = SentryService.beforeSend;
},
);
return runApp(
AppInjector(),
);
}, (error, stackTrace) async {
unawaited(SentryService().recordError(error, stackTrace: stackTrace));
});
}
And this is my recordError
method:
Future<void> recordError(
dynamic exception, {
StackTrace? stackTrace,
String? stringHint,
Map<String, dynamic>? mapHint,
}) async {
await Sentry.captureException(
exception,
stackTrace: stackTrace,
withScope: (scope) {
if (stringHint != null) {
scope.setContexts('Extra Data (string)', stringHint);
}
if (mapHint != null) {
scope.setContexts('Extra Data (map)', mapHint);
}
},
);
}
Hi, which platform are you using
Hi, which platform are you using
The described behavior is on iOS
Platform
Flutter Mobile
Obfuscation
Enabled
Debug Info
Enabled
Doctor
[✓] Flutter (Channel stable, 3.22.1, on macOS 14.4.1 23E224 darwin-arm64, locale en-AT) • Flutter version 3.22.1 on channel stable at /Users/floriandaniel/fvm/versions/3.22.1 • Upstream repository https://github.com/flutter/flutter.git • Framework revision a14f74ff3a (6 weeks ago), 2024-05-22 11:08:21 -0500 • Engine revision 55eae6864b • Dart version 3.4.1 • DevTools version 2.34.3
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0) • Android SDK at /Users/floriandaniel/Library/Android/sdk • Platform android-34, build-tools 34.0.0 • ANDROID_HOME = /Users/floriandaniel/Library/Android/sdk • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314) • All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 15.4) • Xcode at /Applications/Xcode.app/Contents/Developer • Build 15F31d • CocoaPods version 1.15.2
[✓] Chrome - develop for the web • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2023.1) • Android Studio at /Applications/Android Studio.app/Contents • Flutter plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/6351-dart • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314)
[✓] IntelliJ IDEA Community Edition (version 2023.2.2) • IntelliJ at /Applications/IntelliJ IDEA CE.app • Flutter plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/6351-dart
[✓] VS Code (version 1.90.2) • VS Code at /Applications/Visual Studio Code.app/Contents • Flutter extension version 3.90.0
Version
8.3.0
Steps to Reproduce
PhoenixException
from thephoenix_socket:0.6.4
package (so far only on iOS)Expected Result
I expect a proper stacktrace. It also looks like the
beforeSend
is then not called for thePhoenixException
as I am actually trying to ignore those directly on the device.Actual Result
Actual StackTrace:
Are you willing to submit a PR?
None