-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
fix(react): Add POP
guard for long-running pageload
spans
#17867
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
chargome
merged 8 commits into
develop
from
onur/react-router-long-running-pageload-guard
Oct 15, 2025
Merged
fix(react): Add POP
guard for long-running pageload
spans
#17867
chargome
merged 8 commits into
develop
from
onur/react-router-long-running-pageload-guard
Oct 15, 2025
Conversation
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
c5b63b9
to
b3027fd
Compare
chargome
approved these changes
Oct 8, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice find! Any way we can test this in e2e?
node-overhead report 🧳Note: This is a synthetic benchmark with a minimal express app and does not necessarily reflect the real-world performance impact in an application.
|
68e2702
to
5608b63
Compare
@chargome - I updated the PR with edge case handling + E2E tests |
s1gr1d
approved these changes
Oct 9, 2025
ec0a205
to
1fb8a6d
Compare
chargome
approved these changes
Oct 15, 2025
timfish
pushed a commit
that referenced
this pull request
Oct 15, 2025
This resolves the issue that occurs when an extra `navigation` transaction is created after a prematurely ended `pageload` transaction in React Router lazy routes. This apparently occurs when there's a long-running pageload with lazy-routes (after fetching assets, there are multiple potentially long-running API calls happening). This causes the `pageload` transaction to prematurely end, even before the fully parameterized transaction name is resolved. The reason is that there can be a `POP` event emitted, which we subscribe to create a `navigation` transaction. This ends the ongoing `pageload` transaction before its name is updated with a resolved parameterized route path, and starts a `navigation` transaction, which contains the remaining spans that were supposed to be a part of the `pageload` transaction. This fix makes sure the initial `POP` events are not necessarily treated as `navigation` pointers, which should fix both: - Duplicate / extra `navigation` transactions having a part of `pageload` spans. - Remaining wildcards in the `pageload` transaction names
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.
This resolves the issue that occurs when an extra
navigation
transaction is created after a prematurely endedpageload
transaction in React Router lazy routes.This apparently occurs when there's a long-running pageload with lazy-routes (after fetching assets, there are multiple potentially long-running API calls happening).
This causes the
pageload
transaction to prematurely end, even before the fully parameterized transaction name is resolved. The reason is that there can be aPOP
event emitted, which we subscribe to create anavigation
transaction. This ends the ongoingpageload
transaction before its name is updated with a resolved parameterized route path, and starts anavigation
transaction, which contains the remaining spans that were supposed to be a part of thepageload
transaction.This fix makes sure the initial
POP
events are not necessarily treated asnavigation
pointers, which should fix both:navigation
transactions having a part ofpageload
spans.pageload
transaction names