vercel/next.js · error

Unknown key passed via urlObject into url.format: ${key}

Error message

Unknown key passed via urlObject into url.format: ${key}

What it means

formatWithValidation (dev only) iterates the keys of a UrlObject passed to url.format and warns when a key is outside the known urlObjectKeys allowlist (auth, hash, host, hostname, href, path, pathname, port, protocol, query, search, slashes) — almost always a typo; formatting still proceeds.

Source

Thrown at packages/next/src/shared/lib/router/utils/format-url.ts:95

  'hash',
  'host',
  'hostname',
  'href',
  'path',
  'pathname',
  'port',
  'protocol',
  'query',
  'search',
  'slashes',
]

export function formatWithValidation(url: UrlObject): string {
  if (process.env.NODE_ENV === 'development') {
    if (url !== null && typeof url === 'object') {
      Object.keys(url).forEach((key) => {
        if (!urlObjectKeys.includes(key)) {
          console.warn(
            `Unknown key passed via urlObject into url.format: ${key}`
          )
        }
      })
    }
  }

  return formatUrl(url)
}

View on GitHub (pinned to 0eb3775416)

Solutions

  1. Remove the unknown key from the URL object; only standard url.format keys are allowed.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at packages/next/src/shared/lib/router/utils/format-url.ts:95 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of vercel/next.js@0eb3775416 (2026-08-19). Data as JSON: /api/errors/25ebf0f59bb4f5d6. Report an issue: GitHub.