vercel/next.js · error

The prop `url` is a reserved prop in Next.js for legacy reas

Error message

The prop `url` is a reserved prop in Next.js for legacy reasons and will be overridden on page ${pathname}
See more info here: https://nextjs.org/docs/messages/reserved-page-prop

What it means

Error "The prop `url` is a reserved prop in Next.js for legacy reasons and will be overridden on page ${pathname} See more info here: https://nextjs.org/docs/messages/reserved-page-prop" thrown in vercel/next.js.

Source

Thrown at packages/next/src/server/render.tsx:1216

      !isSerializableProps(pathname, 'getServerSideProps', (data as any).props)
    ) {
      // this fn should throw an error instead of ever returning `false`
      throw new Error(
        'invariant: getServerSideProps did not return valid props. Please report this.'
      )
    }

    props.pageProps = Object.assign({}, props.pageProps, (data as any).props)
    metadata.pageData = props
  }

  if (
    !isSSG && // we only show this warning for legacy pages
    !getServerSideProps &&
    process.env.NODE_ENV !== 'production' &&
    Object.keys(props?.pageProps || {}).includes('url')
  ) {
    console.warn(
      `The prop \`url\` is a reserved prop in Next.js for legacy reasons and will be overridden on page ${pathname}\n` +
        `See more info here: https://nextjs.org/docs/messages/reserved-page-prop`
    )
  }

  // Avoid rendering page un-necessarily for getServerSideProps data request
  // and getServerSideProps/getStaticProps redirects
  if ((isNextDataRequest && !isSSG) || metadata.isRedirect) {
    return new RenderResult(JSON.stringify(props), {
      metadata,
      contentType: JSON_CONTENT_TYPE_HEADER,
    })
  }

  // We don't call getStaticProps or getServerSideProps while generating
  // the fallback so make sure to set pageProps to an empty object
  if (isFallback) {
    props.pageProps = {}

View on GitHub (pinned to 89d017eac4)

Solutions

  1. Rename the `url` prop in the page's props to something else (e.g. `pageUrl`); `url` is reserved by Next.js.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at packages/next/src/server/render.tsx:1218 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of vercel/next.js@89d017eac4 (2026-08-19). Data as JSON: /api/errors/ca43a28f934c0381. Report an issue: GitHub.