Skip to content
DocsErrors`NextRouter` was not mounted

`NextRouter` was not mounted

Why This Error Occurred

A component used useRouter outside a Next.js application, or was rendered outside a Next.js application. This can happen when doing unit testing on components that use the useRouter hook as they are not configured with Next.js' contexts.

This can also happen when you try to use the useRouter hook from next/router inside the app directory, as the App Router's useRouter from next/navigation has different behavior to the useRouter hook in pages.

Possible Ways to Fix It

If used in a test, mock out the router by mocking the next/router's useRouter() hook.

If used in the app directory, migrate to the new hooks imported from next/navigation.

If used in the pages directory, try to update the export to next/compat/router. This is the same useRouter hook but does not throw this error, intended to be used while migrating from pages to app.