Skip to content

Route "/" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js. #86664

@IskanderMustafin

Description

@IskanderMustafin

Link to the code that reproduces this issue

https://github.com/IskanderMustafin/nextjs-metadata-runtime-bug

To Reproduce

  1. Create a new app: pnpm create next-app@latest next-runtime-data-test --yes
  2. In next.config.ts, set:
     cacheComponents: true,
     htmlLimitedBots: /.*/,

  1. In app/page.tsx add generateMetadata that accesses runtime data (like await searchParams or await connection()) :
   export async function generateMetadata(): Promise<Metadata> {
     await connection()

     return {
       title: 'My App',
       description: 'My App Description',
     }
   }

  1. Run pnpm dev and open / in the browser.
Image Image

Current vs. Expected behavior

In the dev server logs, Next.js repeatedly prints:

Route "/" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.

generateMetadata should be allowed to use runtime data like connection() even when cacheComponents: true and htmlLimitedBots: /.*/ are enabled.

Provide environment information

npx --no-install next info

Operating System:
  Platform: darwin
  Arch: arm64
  Version: Darwin Kernel Version 25.1.0: Mon Oct 20 19:34:05 PDT 2025; root:xnu-12377.41.6~2/RELEASE_ARM64_T6041
  Available memory (MB): 24576
  Available CPU cores: 12
Binaries:
  Node: 20.19.4
  npm: 10.8.2
  Yarn: N/A
  pnpm: 10.14.0
Relevant Packages:
  next: 16.0.5 // Latest available version is detected (16.0.5).
  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)

create-next-app, Metadata, cacheComponents

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

next dev (local), next build (local), next start (local)

Additional context

The issue only appears when all three are combined:

  • cacheComponents: true
  • htmlLimitedBots: /.*/ (disabling streaming metadata)
  • generateMetadata calling any runtime data ( e.g. await connection())

Problem happens with any Next.js 16+ (I tried up until 16.0.5)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Cache ComponentsRelated to the `cacheComponents`, `useCache`, or `ppr` experimental flags.MetadataRelated to Next.js' Metadata API.create-next-appRelated to our CLI tool for quickly starting a new Next.js application.

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions