unstale

npm / @clerk/nextjs

@clerk/nextjs

What changed in @clerk/nextjs 6 to 7, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-18.

39 breaking10 security5 deprecations26 new APIs and options6 behavior and defaults14 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli on npm

@clerk/nextjs 790 changes

Breaking changes 39

  • Missing Clerk keys no longer activate keyless mode; the SDK throws an error directing you to run npx clerk@latest init to provision an application and write keys to .env.local.

    7.8.0release notes

  • Using the removed Protect component now triggers a runtime migration error.

    7.7.5release notes

  • Using the removed SignedIn component now triggers a runtime migration error.

    7.7.5release notes

  • Using the removed SignedOut component now triggers a runtime migration error.

    7.7.5release notes

  • Removed the component from the public API in favor of usage within OrganizationProfile.

    7.5.0release notes

  • Middleware authorization now fails closed during the keyless bootstrap window, preventing auth.protect() and custom authorization checks from being bypassed while the publishable key is being provisioned.

    7.3.1release notes

  • Legacy redirect props are no longer exported; components rely on new redirect options and server-side configuration.

    7.0.0release notes

  • Legacy redirect props are no longer exported; components rely on new redirect options and server-side configuration.

    7.0.0release notes

  • OrganizationSwitcher no longer exports this prop.

    7.0.0release notes

  • Unauthenticated server action requests now receive 401 instead of 404.

    7.0.0release notes

  • When passing secretKey as a runtime option to clerkMiddleware(), a missing encryption key now throws; configure this environment variable.

    7.0.0release notes

  • Removed from all SDKs; pin @clerk/clerk-js by passing its Clerk constructor to ClerkProvider via the Clerk prop.

    7.0.0release notes

  • Removed along with the headless bundle; use prefetchUI={false} instead.

    7.0.0release notes

  • Removed from all SDKs; pin @clerk/clerk-js by passing its Clerk constructor to ClerkProvider via the Clerk prop.

    7.0.0release notes

  • This type alias is no longer exported.

    7.0.0release notes

  • Removed from all SDKs; pass ui from @clerk/ui to ClerkProvider via the ui prop to pin a version.

    7.0.0release notes

  • Removed from all SDKs; pass ui from @clerk/ui to ClerkProvider via the ui prop to pin a version.

    7.0.0release notes

  • No longer exported.

    7.0.0release notes

  • Methods previously prefixed experimental__* and experimental_* are renamed to __experimental_* for beta features.

    7.0.0release notes

  • Removed deprecated option.

    7.0.0release notes

  • When the client is offline, getToken() now throws ClerkOfflineError instead of returning null.

    7.0.0release notes

  • Organization hideSlug flags are no longer exported.

    7.0.0release notes

  • useAuth no longer accepts initialAuthState; pass initialState to ClerkProvider or use dynamic with the Next package.

    7.0.0release notes

  • Methods previously prefixed __unstable_* are renamed to __internal_* for internal APIs.

    7.0.0release notes

  • Renamed from __unstable_invokeMiddlewareOnAuthStateChange.

    7.0.0release notes

  • Support for Next.js 13 and 14 is dropped; Next.js >=15.2.3 is required.

    7.0.0release notes

  • The minimum supported Node version is now v20.9.0.

    7.0.0release notes

  • Use prefetchUI={false} in place of the removed clerkJSVariant option and headless bundle.

    7.0.0release notes

  • Removed in favor of Show.

    7.0.0release notes

  • Legacy redirect props are no longer exported; components rely on new redirect options and server-side configuration.

    7.0.0release notes

  • The beforeEmit option is no longer exported.

    7.0.0release notes

  • Introduced as the cross-framework authorization control component, replacing Protect, SignedIn, and SignedOut.

    7.0.0release notes

  • Removed in favor of Show.

    7.0.0release notes

  • Removed in favor of Show.

    7.0.0release notes

  • Removed deprecated billing-related prop.

    7.0.0release notes

  • Removed deprecated billing-related prop.

    7.0.0release notes

  • Removed deprecated billing-related prop.

    7.0.0release notes

  • During SSR, getToken is now a function rather than undefined, and calling it throws; handle the error instead of checking for undefined.

    7.0.0release notes

  • UserButton sign-out overrides are no longer exported.

    7.0.0release notes

Security 10

  • Isolates each request's store so dynamic secret keys used by clerkClient() inside the middleware handler cannot leak across concurrent requests.

    7.9.5release notes

  • CSP headers generated by clerkMiddleware() now allow Clerk abuse and fraud protection resources.

    7.5.21release notes

  • Known credential keys are now recursively truncated at any nesting depth, preventing bearer tokens from reaching debug logs.

    7.5.0release notes

  • Keyless mode no longer activates in CI and other automated environments.

    7.4.3release notes

  • If you use the Next.js App Router, upgrade to Next.js 15.5.18, 16.2.6, or a later patched release; versions 16.0.0 through 16.2.5 remain affected by a Middleware/Proxy bypass.

    7.3.5release notes

  • Middleware-to-origin auth header integrity signatures are now compared in constant time, avoiding timing-variable validation and working in both Node and Edge Runtime.

    7.2.8release notes

  • URL paths are normalized to prevent route protection bypass.

    6.39.2, 7.2.1release notesrelease notes

  • Official Clerk JavaScript SDKs: Middleware-based route protection bypass

    6.39.2, 7.2.1security advisory

  • If you use the Next.js App Router, upgrade Next.js to 15.5.15 or 16.2.3 to address a high-severity React Server Components denial-of-service vulnerability.

    7.1.0release notes

  • The generated CSP nonce is now forwarded as a request header, allowing server components and ClerkProvider to apply it to script tags.

    7.0.0release notes

Deprecations 5

  • The removed control-component stub is now tagged @deprecated, so editors and lint rules flag use at authoring time and provide <Show> migration guidance.

    7.8.4release notes

  • The removed control-component stub is now tagged @deprecated, so editors and lint rules flag use at authoring time and provide <Show> migration guidance.

    7.8.4release notes

  • The removed control-component stub is now tagged @deprecated, so editors and lint rules flag use at authoring time and provide <Show> migration guidance.

    7.8.4release notes

  • Deprecated in favor of resource-based auth checks, which place checks in each protected page, layout, API route, or Server Function.

    7.5.14release notes

  • The existing type remains unchanged but is now deprecated.

    7.5.13release notes

New APIs and options 23

  • Adds an authenticated component for approving or denying OAuth Device Authorization Grant requests.

    7.9.0release notes

  • Adds a workflow hook for approving or denying OAuth Device Authorization Grant requests.

    7.9.0release notes

  • Frontend API proxy helpers accept an fapiUrl option so requests can target a custom Clerk Frontend API URL.

    7.6.0release notes

  • Set CLERK_DISABLE_AUTO_PROXY=true to opt out of automatic Frontend API proxying on Vercel production deployments.

    7.5.19release notes

  • Exported as the new type-level autocomplete suggestion for route matchers, using the :path* subtree form.

    7.5.13release notes

  • Exported this previously internal type so it can be referenced from generated docs.

    7.5.0release notes

  • Exported this previously internal type so it can be referenced from generated docs.

    7.5.0release notes

  • Exported this previously internal type so it can be referenced from generated docs.

    7.5.0release notes

  • Exposed OAuthConsent as a public component export across React-based SDKs.

    7.3.0release notes

  • Re-exports the useAPIKeys() hook from @clerk/nextjs so applications can use it directly.

    7.0.12release notes

  • New /types subpath re-exports shared and SDK-specific types so applications can import Clerk types directly from the SDK package.

    7.0.0release notes

  • New query parameter tracks satellite sync state: 1 triggers handshake after primary sign-in and 2 prevents a re-sync loop after completion.

    7.0.0release notes

  • Exported error to identify offline token-fetch failures from getToken().

    7.0.0release notes

  • New ui prop accepts @clerk/ui, enabling the UI module to be passed directly to ClerkProvider.

    7.0.0release notes

  • Adds Frontend API proxy support through the clerkMiddleware option.

    7.0.0release notes

  • Standalone function retrieves session tokens outside framework component trees and waits for Clerk to initialize in the browser.

    7.0.0release notes

  • Component handles the SSO callback during custom flows, including sign-in-or-up.

    7.0.0release notes

  • Defaults to false, skipping automatic satellite handshake when no session cookies exist; set true to retain automatic first-load syncing.

    7.0.0release notes

  • Introduces a session task named setup_mfa.

    7.0.0release notes

  • Option disables the development mode warning emitted to the console when Clerk is first loaded.

    7.0.0release notes

  • Component lets developers choose the container for Clerk floating UI portals within its provider subtree.

    7.0.0release notes

  • Exported hook fetches a suggested organization name and logo from default naming rules.

    6.37.0, 7.0.0release notesrelease notes

  • Exports for the useWaitlist hook were added.

    7.0.0release notes

Behavior and default changes 5

  • The default Content Security Policy no longer includes https://images.clerkstage.dev, a Clerk-internal storage host that applications do not connect to.

    7.9.11release notes

  • The generated connect-src directive allows Clerk abuse and fraud protection hosts on all ports, so requests to those hosts on non-443 ports are no longer blocked.

    7.7.8release notes

  • ConfigureSSO is no longer on the experimental path.

    7.4.0release notes

  • On .vercel.app domains without explicit proxy or domain configuration, Frontend API requests are automatically routed through /__clerk on the app's own origin, enabling Clerk production mode without manual proxy setup.

    7.2.8release notes

  • Image CDNs are now included in the Content Security Policy connect-src directive.

    6.36.8, 7.0.0release notesrelease notes

Fixes and other changes 8

  • Export <HandleSSOCallback /> from @clerk/nextjs so it can be used on the SSO callback route of a custom flow.

    7.9.13release notes

  • Removed the trailing period from the displayed error so agents do not append it to the URL and get a 404.

    7.9.9release notes

  • Fixes a development-only React key warning when using ClerkProvider in the App Router.

    7.9.5release notes

  • Fixed a stray double space in the error message about Clerk not detecting usage of clerkMiddleware().

    7.7.6release notes

  • The error message when clerkMiddleware is not detected now notes that infrastructure issues, such as edge runtime errors or platform outages, can also cause the error.

    7.3.2release notes

  • Fixes build failures when cacheComponents is enabled with dynamic routes such as [id].

    7.0.2release notes

  • Fixed an edge case where duplicate in-flight redirects to the same destination could leave awaitable navigation pending indefinitely.

    7.0.0release notes

  • Improved error detection and messages when auth() or currentUser() are called inside a use cache function.

    7.0.0release notes

@clerk/nextjs 610 changes

New APIs and options 3

  • M2M token creation accepts tokenFormat: 'jwt'; JWT-format tokens can be verified with clerkClient.m2m.verify, including networkless verification using the public JWT key.

    6.39.0release notes

  • Introduces an MFA setup session task for handling require MFA after sign-in and sign-up.

    6.38.0release notes

  • Introduces the TaskResetPassword session task component for handling password resets.

    6.36.0release notes

Behavior and default changes 1

  • Updates the supported API version to 2025-11-10.

    6.35.0release notes

Fixes and other changes 6

  • Fixes an infinite handshake redirect loop when deploying Next.js apps with Clerk development instances to Netlify.

    6.38.0release notes

  • JWT OAuth access tokens are now treated as machine tokens.

    6.37.2release notes

  • Updates the middleware location check to account for proxy.ts in Next 16+ applications.

    6.37.0release notes

  • React 19 peer dependency ranges use ~ instead of ^ to ensure non-overlapping version constraints.

    6.36.5release notes

  • Extends the cache invalidation no-op to Next.js 16 during sign-out.

    6.35.2release notes

  • Added support for Next.js 16.

    6.34.0release notes