Pull requests inbox: custom section order breaks hydration (duplicated page) and leaves a section loading forever #210248
Unanswered
choyongjoon
asked this question in
Pull Requests
Replies: 1 comment
|
💬 Your Product Feedback Has Been Submitted 🎉 Thank you for taking the time to share your insights with us! Your feedback is invaluable as we build a better GitHub experience for all our users. Here's what you can expect moving forward ⏩
Where to look to see what's shipping 👀
What you can do in the meantime 💻
As a member of the GitHub community, your participation is essential. While we can't promise that every suggestion will be implemented, we want to emphasize that your feedback is instrumental in guiding our decisions and priorities. Thank you once again for your contribution to making GitHub even better! We're grateful for your ongoing support and collaboration in shaping the future of our platform. ⭐ |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
🏷️ Discussion Type
Bug
Body
Summary
On
https://github.com/pulls/inbox, if a user has customized the section order (⚙️ → Customize sections) and the browser has no section-order cookie, the page renders twice. The top copy is the server HTML and does not respond. One section also shows a loading skeleton forever. Reset to default fixes it. Saving a custom order again in the same browser also fixes it, because that sets the cookie.Steps to reproduce
/pulls/inboxin a different browser or profile, where the order cookie is not set.Actual
react-app[app-name="dashboard-surface"] > [data-target="react-app.reactRoot"]has two layoutdivs. The first is the SSR markup, with no React fiber and_R_…ids. The second is a client render with_r_…ids. The page layout shows twice.Analysis (from the shipped
dashboard-surfacebundle)…Blockingroute query. The other sections use…Deferred.sectionReadyToMergeBlocking.firstVisibleSectionIdfrom cookies. When the order cookies are not there, it uses the default order, so it treats "Needs your review" as first. It waits forsectionReviewRequestedBlocking, but that query is not in the embedded data, so it is never enabled. ItsisPendingstays true forever.No HydrateFallback element provided to render during initial hydrationmany times.Expected
The client should get its section order from the same source as the server, or it should not use cookies only. Also, when hydration fails, the page should recover to one working tree.
Workaround
Customize sections → Reset to default → Save. Or save the custom order again in each browser.
All reactions