vercel / next.js

The React Framework
https://nextjs.org
MIT License
125.16k stars 26.74k forks source link

Slow Page Transitions and Infinite Loading with Internal Navigation Using Link Component in Next.js 14.2 #64609

Closed SergejSi closed 3 months ago

SergejSi commented 5 months ago

Link to the code that reproduces this issue

https://github.com/

To Reproduce

  1. Start the application in development mode (next dev).

  2. Navigate between pages using the Link component from 'next/link'.

  3. Expected: Immediate transition with loading indicators appearing without delay.

  4. Actual: There is a 2-3 second delay before any loading indicators appear.

  5. Click on a link that directs to the current page you are on.

  6. Expected: The page should either do nothing or refresh quickly without issues.

  7. Actual: The application enters an infinite loading state where the page tries to reload but never completes.

Current vs. Expected behavior

Current Behavior:

  1. Navigating to a different page shows a delay of approximately 2-3 seconds before loading indicators appear.
  2. Clicking on a link to the current page results in infinite loading.

Expected Behavior:

  1. Page transitions should be near-instantaneous with loading indicators appearing immediately.
  2. Clicking a link to the current page should not cause infinite loading; instead, it should refresh the page quickly or do nothing.

Provide environment information

Operating System: MacOS, arm64, Kernel Version 22.5.0
Binaries:
Node: 18.17.1
npm: 9.5.1
Yarn: 1.22.19
Relevant Packages:
next: 14.2
react: 18.2.0
react-dom: 18.2.0
typescript: 5.2.2

Which area(s) are affected? (Select all that apply)

App Router, Routing (next/router, next/navigation, next/link)

Which stage(s) are affected? (Select all that apply)

next dev (local), Vercel (Deployed)

Additional context

The issues are observable both locally and when hosted on Vercel. Similar issues have been persistent from Next.js version 13.x through 14.2. This seems unrelated to data fetching as the delay is consistent even on pages with minimal client-side data requirements.

github-actions[bot] commented 5 months ago

We cannot recreate the issue with the provided information. Please add a reproduction in order for us to be able to investigate.

Why was this issue marked with the please add a complete reproduction label?

To be able to investigate, we need access to a reproduction to identify what triggered the issue. We prefer a link to a public GitHub repository (template for App Router, template for Pages Router), but you can also use these templates: CodeSandbox: App Router or CodeSandbox: Pages Router.

To make sure the issue is resolved as quickly as possible, please make sure that the reproduction is as minimal as possible. This means that you should remove unnecessary code, files, and dependencies that do not contribute to the issue. Ensure your reproduction does not depend on secrets, 3rd party registries, private dependencies, or any other data that cannot be made public. Avoid a reproduction including a whole monorepo (unless relevant to the issue). The easier it is to reproduce the issue, the quicker we can help.

Please test your reproduction against the latest version of Next.js (next@canary) to make sure your issue has not already been fixed.

If you cannot create a clean reproduction, another way you can help the maintainers' job is to pinpoint the canary version of next that introduced the issue. Check out our releases, and try to find the first canary release that introduced the issue. This will help us narrow down the scope of the issue, and possibly point to the PR/code change that introduced it. You can install a specific version of next by running npm install next@<version>.

I added a link, why was it still marked?

Ensure the link is pointing to a codebase that is accessible (e.g. not a private repository). "example.com", "n/a", "will add later", etc. are not acceptable links -- we need to see a public codebase. See the above section for accepted links.

What happens if I don't provide a sufficient minimal reproduction?

Issues with the please add a complete reproduction label that receives no meaningful activity (e.g. new comments with a reproduction link) are automatically closed and locked after 30 days.

If your issue has not been resolved in that time and it has been closed/locked, please open a new issue with the required reproduction.

I did not open this issue, but it is relevant to me, what can I do to help?

Anyone experiencing the same issue is welcome to provide a minimal reproduction following the above steps. Furthermore, you can upvote the issue using the :+1: reaction on the topmost comment (please do not comment "I have the same issue" without reproduction steps). Then, we can sort issues by votes to prioritize.

I think my reproduction is good enough, why aren't you looking into it quicker?

We look into every Next.js issue and constantly monitor open issues for new comments.

However, sometimes we might miss one or two due to the popularity/high traffic of the repository. We apologize, and kindly ask you to refrain from tagging core maintainers, as that will usually not result in increased priority.

Upvoting issues to show your interest will help us prioritize and address them as quickly as possible. That said, every issue is important to us, and if an issue gets closed by accident, we encourage you to open a new one linking to the old issue and we will look into it.

Useful Resources

SergejSi commented 4 months ago

For everyone who has the same issue. I have changed to “canary” and it seems to work better.

rvanlaarhoven commented 4 months ago

I had a similar issue that started to happen after upgrading to Next 14.2. I narrowed it down to a specific Sentry feature, even though it didn't seem to make a lot of sense that this feature would cause the problem. I reported it here; https://github.com/getsentry/sentry-javascript/issues/11796 (including a reproduction) and we didn't actually find the cause. It didn't happen anymore after using their latest v8 beta version so the issue got closed. But might still be relevant here.

balazsorban44 commented 3 months ago

This issue has been automatically closed because it received no activity for a month and had no reproduction to investigate. If you think it was closed by accident, please leave a comment. If you are running into a similar issue, please open a new issue with a reproduction. Thank you.

github-actions[bot] commented 3 months ago

This closed issue has been automatically locked because it had no new activity for 2 weeks. If you are running into a similar issue, please create a new issue with the steps to reproduce. Thank you.