vercel/next.js · error · Error

`unstable_isUnrecognizedActionError` can only be used on…

Error message

`unstable_isUnrecognizedActionError` can only be used on the client.

What it means

Server-module stub: this file is the react-server export surface of navigation, and unstable_isUnrecognizedActionError is a client-only hook. Importing and calling it from a server component resolves to this always-throwing placeholder instead of the real client implementation.

Solutions

  1. Call unstable_isUnrecognizedActionError only in Client Components; guard with typeof window or move the check to the client.
Defensive patterns

Strategy: validation

When it happens

Trigger: unstable_isUnrecognizedActionError is imported or called in a server context.

Common situations: A React Server Component or server module references this client-only helper.


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

Appendix: source

Thrown at packages/next/src/client/components/navigation.react-server.ts:4

import { ReadonlyURLSearchParams } from './readonly-url-search-params'

export function unstable_isUnrecognizedActionError(): boolean {
  throw new Error(
    '`unstable_isUnrecognizedActionError` can only be used on the client.'
  )
}

export { redirect, permanentRedirect } from './redirect'
export { notFound } from './not-found'
export { forbidden } from './forbidden'
export { unauthorized } from './unauthorized'
export { unstable_rethrow } from './unstable-rethrow'
export { ReadonlyURLSearchParams }

export const RedirectType = {
  push: 'push',
  replace: 'replace',
} as const

View on GitHub (pinned to 0eb3775416)