Wrong segment rendered when quickly reload page and navigate through browser history in Next.js 13+. #69401
Labels
bug
Issue was opened via the bug report template.
Navigation
Related to Next.js linking (e.g., <Link>) and navigation.
Pages Router
Related to Pages Router.
Link to the code that reproduces this issue
https://codesandbox.io/p/devbox/snowy-platform-7k39wy
To Reproduce
Page 1
andPage 2
routes to createwindow.history records
to be able to go back viabrowser arrow
.reload
page viabrowser reload button or keyboard
or andgo back
toprevious route
(make it as fast as possible)updated URL
and thecontent from previous page
.step 3
.Current vs. Expected behavior
Actual result: page content is still from previous route and URL is correct.
Expected result: page content where I go back and URL must be correct.
Provide environment information
Operating System: Platform: linux Arch: x64 Version: #1 SMP PREEMPT_DYNAMIC Sun Aug 6 20:05:33 UTC 2023 Available memory (MB): 4102 Available CPU cores: 2 Binaries: Node: 20.9.0 npm: 9.8.1 Yarn: 1.22.19 pnpm: 8.10.2 Relevant Packages: next: 15.0.0-canary.132 // Latest available version is detected (15.0.0-canary.132). eslint-config-next: N/A react: 19.0.0-rc-eb3ad065-20240822 react-dom: 19.0.0-rc-eb3ad065-20240822 typescript: 5.3.3 Next.js Config: output: N/A
Which area(s) are affected? (Select all that apply)
Navigation, Pages Router
Which stage(s) are affected? (Select all that apply)
next dev (local), next start (local), Vercel (Deployed), Other (Deployed)
Additional context
That issue exists in all Next.js 13+ that I tried to reproduce bug.
Here is the screen record from official Vercel website that also reproduces that issue.
Current way to fix.
To fix that bug, I check for actual rendered segment, then check for what actually I have in URL and use
router.push
to URL with rendered segment. As I tested it's not possible to correctly change segment according to URL but it's possible to change URL according to rendered segment. But you need to configure that logic manually for a lot of segments so it's not the best option of course but at least we show correct content and URL for user.The text was updated successfully, but these errors were encountered: