Closed ekuleshov closed 1 month ago
hey thanks for raising this issue.
This is indeed not the behaviour we want, currently we fallback to a python representation for dart stacktraces (didn't know this either) 😅
We'll take a look at that
For native stacktrace it already works correctly
For Dart stacktraces (in addition to the problem on the website) you need to set the platform for the frame to dart
, which currently is not done
On the web platform, you may need to set platform to JS or something.
Any update or what is holding this up? This is a critical essential issue for Dart/Flutter and there seem to be understanding what need to be fixed.
@ekuleshov thanks for checking in - I agree this is important and we're gonna revisit/bump priority
Improvements are in release 8.5.0
, I'm closing this now but feel free to reopen if there are still issues
Improvements are in release
8.5.0
, I'm closing this now but feel free to reopen if there are still issues
@buenaflor the Sentry's web UI still shows non Dart's stack traces for existing issues (as per the title of this issue).
Some explanation how it supposed to work or what developers need to do would be good to see.
Sentry's web UI still shows non Dart's stack traces for existing issues (as per the title of this issue).
Stacktraces before 8.5.0
don't have platforms set in the event payload so by default our frontend will use the python stacktrace formatting. There's nothing much we can do here to make it work for existing issues.
The only thing that I can think of is to have some kind of dropdown menu to select which kind of formatting you want to see on-demand. That's a frontend issue though and should be brought up in the main sentry repo.
Some explanation how it supposed to work or what developers need to do would be good to see.
frames now have the platform field as of 8.5.0
which the frontend will format the stacktrace depending on the specified platform.
Anyway, I've added the dart raw stacktrace formatting to the frontend so my suggestion would be to request this over there, eg: some kind of dropdown menu to select which kind of formatting you want to see on-demand
Also in case you don't want to upgrade to your newest version you could also set the platform
field to dart
in the sentry frames within beforeSend
, but this would still require another app release.
Stacktraces before
8.5.0
don't have platforms set in the event payload so by default our frontend will use the python stacktrace formatting. There's nothing much we can do here to make it work for existing issues.
Hmm. Nothing can do? Are you carving received event data to the punch carts? Surely there is some way to update your event store and events themselves have information that they came from Dart...
And this issue was filled to the Sentry's web UI. I don't see it resolved there with this fix.
@ekuleshov Frame formatting is performed on the frontend based on the reported platform, we don't alter events in the event store afterwards to add the platform.
The changes to correctly format Dart frames for new events is now available in sentry-dart 8.5.0 and live on sentry.io.
@kahest so, you don't find it feasible to update existing events in the Sentry's data store to correctly show Dart's stack traces for the past events?
Not sure what does "live on sentry.io" part means if only the Dart SDK was changed.
Ah, maybe you didn't see it, we did not only change the Dart SDK, we also made changes to the frontend: https://github.com/getsentry/sentry/pull/74715
we process the stacktrace formatting based on the specified platform
, this is not dart specific but for all stacktraces that's the reason why existing issues are still in the python formatting.
but like I said above, maybe it makes sense to have some menu in the UI where you can toggle which kind of stacktrace formatting you'd like, choosing from javascript, java up to dart etc... that would work for all issues (even existing)
Platform
Dart
Obfuscation
Disabled
Debug Info
Disabled
Doctor
N/A
Version
8.1.0
Steps to Reproduce
Look at any issue reported from a Flutter/Dart app. Navigate to stack trace and turn on the "Raw stack trace" option.
The presented Dart stack trace look something like this:
Expected Result
The raw/native stack trace format for Dart for the above trace should look something like this. Also note the package reference and the source path missing from the current Sentry's "raw stack trace" presentation, which is required in order to uniquely identify source of the issue.
Actual Result
The Dart stack trace presentation in the Sentry's web UI is not anywhere alike Dart's native/raw stack trace (e.g. if you catch and print stack trace in the Dart code).
Also if you copy it from the Sentry web UI, the stack trace format is not recognized by the Dart tools, e.g. "Code / Analyze Stack Trace or Thread Dump..." action in the IntelliJ Dart/Flutter plugins and as a result you can't easily navigate to the source code from the stack trace analysis view in the IDE.
Are you willing to submit a PR?
None