feat: emit error-tracking stack frames in canonical bottom-up order#467
Merged
Conversation
Dart stack frames were emitted innermost-first (crash site first). Reverse the parsed frames so the wire order is bottom-up: frames[0] is the outermost/entry-point frame and the last frame is the crash site, matching PostHog's canonical cross-SDK format. Applies to the primary exception and every cause in the chain. Native (Android/iOS) crash paths are unaffected.
|
Reviews (1): Last reviewed commit: "feat: emit error-tracking stack frames i..." | Re-trigger Greptile |
Contributor
posthog-flutter Compliance ReportDate: 2026-07-22 19:11:59 UTC ✅ All Tests Passed!45/45 tests passed Capture Tests✅ 29/29 tests passed View Details
Feature_Flags Tests✅ 16/16 tests passed View Details
|
Contributor
|
This PR hasn't seen activity in a week! Should it be merged, closed, or further worked on? If you want to keep it open, post a comment or remove the |
Contributor
|
This PR was closed due to lack of activity. Feel free to reopen if it's still relevant. |
3 tasks
|
Reviews (2): Last reviewed commit: "chore(android): restore existing JVM tar..." | Re-trigger Greptile |
hpouillot
approved these changes
Jul 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The Dart error-tracking processor emitted
$exception_list[].stacktrace.framesinnermost-first. PostHog's canonical cross-SDK wire order is bottom-up:frames[0]is the outermost/entry-point frame and the last frame is the crash site.Android adopted the canonical order in
posthog-android3.56.0. Apple-native exceptions already use it.Part of cross-SDK stack-frame-order standardization: PostHog/sdk-specs#11
Changes
Rollout coordination
Target Flutter cutoff/version: 5.33.0.
#495 also carries a minor changeset. If that PR releases first, this release becomes 5.34.0 and the Cymbal cutoff must be updated to 5.34.0 before deployment.
Known limitation: already-published Flutter 5.32.1 accepts a dynamic Android dependency range, so a fresh 5.32.1 Android build may resolve
posthog-android3.56.0 while still reporting Flutter 5.32.1. A Flutter-version cutoff cannot distinguish that dependency-resolution case; this PR prevents it for 5.33.0+ by fixing the Android floor.Tests
flutter test(189 tests)