nextjs - 💡(How to fix) Fix [Urgent] Prefetching no longer works in NextJS v16 even on base create-next-app [5 comments, 3 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
vercel/next.js#85248Fetched 2026-04-08 02:16:46
View on GitHub
Comments
5
Participants
3
Timeline
21
Reactions
0
Timeline (top)
labeled ×9commented ×5mentioned ×2subscribed ×2

Root Cause

I first noticed this when I was navigating our website in V16. I noticed that it was slower than normal. Because of our good usage of prefetch, it used to feel instant. It no longer did. I then reverted back to V15, everything was instantly fixed. This also happens on deployments to Vercel.

Code Example

Operating System:
  Platform: darwin
  Arch: arm64
  Version: Darwin Kernel Version 25.1.0: Tue Oct 14 21:32:54 PDT 2025; root:xnu-12377.41.5~4/RELEASE_ARM64_T6041
  Available memory (MB): 24576
  Available CPU cores: 12
Binaries:
  Node: 22.12.0
  npm: 11.0.0
  Yarn: N/A
  pnpm: 10.18.3
Relevant Packages:
  next: 16.0.0 // Latest available version is detected (16.0.0).
  eslint-config-next: N/A
  react: 19.2.0
  react-dom: 19.2.0
  typescript: 5.9.3
Next.js Config:
  output: N/A
RAW_BUFFERClick to expand / collapse

Link to the code that reproduces this issue

https://github.com/NoahCxrest/nextjs-prefetch-bug-repro

To Reproduce

  1. Go on the V16 branch
  2. Start the app up
  3. Click "prefetch post"
  4. Wait a second, then go on the post via the button next to that
  5. You will see that the post is NOT prefetched as the loading state appears.
  6. Now, go on the V15 branch
  7. Start the app up
  8. Click "prefetch post"
  9. Wait a second, then go on the post via the button next to that
  10. You will see that the post loads instantly with no Loading... since it was prefetched via router.prefetch.

Current vs. Expected behavior

I expect the post to prefetch properly when I call router.prefetch. Right now, it is not even initiating the prefetch network request.

Provide environment information

Operating System:
  Platform: darwin
  Arch: arm64
  Version: Darwin Kernel Version 25.1.0: Tue Oct 14 21:32:54 PDT 2025; root:xnu-12377.41.5~4/RELEASE_ARM64_T6041
  Available memory (MB): 24576
  Available CPU cores: 12
Binaries:
  Node: 22.12.0
  npm: 11.0.0
  Yarn: N/A
  pnpm: 10.18.3
Relevant Packages:
  next: 16.0.0 // Latest available version is detected (16.0.0).
  eslint-config-next: N/A
  react: 19.2.0
  react-dom: 19.2.0
  typescript: 5.9.3
Next.js Config:
  output: N/A

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

Form (next/form), create-next-app, Dynamic Routes, Linking and Navigating, Performance, Route Handlers, Turbopack, Webpack

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

next start (local), Vercel (Deployed), Other (Deployed)

Additional context

I first noticed this when I was navigating our website in V16. I noticed that it was slower than normal. Because of our good usage of prefetch, it used to feel instant. It no longer did. I then reverted back to V15, everything was instantly fixed. This also happens on deployments to Vercel.

extent analysis

TL;DR

The issue can likely be resolved by investigating changes in the router.prefetch behavior between Next.js versions 15 and 16.

Guidance

  1. Compare router.prefetch implementation: Review the documentation and source code for router.prefetch in Next.js versions 15 and 16 to identify any changes that might be causing the prefetching issue.
  2. Check for breaking changes: Look for breaking changes in the Next.js 16 release notes that might affect the router.prefetch behavior.
  3. Verify network requests: Use the browser's developer tools to verify that the prefetch network request is not being initiated when using Next.js 16.
  4. Test with a minimal example: Create a minimal example using the router.prefetch method in Next.js 16 to isolate the issue and verify if it's a problem with the library or the specific implementation.

Example

No code example is provided as the issue is more related to the behavior of router.prefetch in different versions of Next.js.

Notes

The issue seems to be specific to the change from Next.js version 15 to 16, and the provided environment information and reproduction steps are helpful in isolating the problem.

Recommendation

Apply workaround: Since the issue is likely related to a change in the router.prefetch behavior, applying a workaround such as using a different prefetching method or modifying the existing implementation to work with Next.js 16 might be necessary until a fix is available.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

nextjs - 💡(How to fix) Fix [Urgent] Prefetching no longer works in NextJS v16 even on base create-next-app [5 comments, 3 participants]