You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@clerk/backend@3.5.0
Minor Changes
Add support for new Backend API user endpoints: (#8694) by @dmoerner
users.replaceUserEmailAddress(userId, { emailAddress }) replaces all of a user's email addresses with a single verified, primary email address (PUT /users/{user_id}/email_address).
users.replaceUserPhoneNumber(userId, { phoneNumber }) replaces all of a user's phone numbers with a single verified, primary phone number (PUT /users/{user_id}/phone_number).
users.createUser now accepts banned and locked parameters to create a user that is already banned or locked.
Patch Changes
Emit the "session token from cookie is missing the azp claim" warning once per process instead of on every authenticated request. An azp-less cookie token is reused across requests, so the previous unguarded console.warn could flood production logs. (#8698) by @jacekradko
Stop authenticateRequest from consuming the incoming request body, which previously left downstream handlers unable to read it (for example a Hono POST route calling c.req.json()). (#8708) by @jacekradko
Prevent keyless mode from activating in CI and other automated environments in framework SDKs. (#8676) by @mwickett
Preserve custom claims when verifying JWT-format M2M tokens. M2MToken.fromJwtPayload previously hardcoded claims to null, so client.m2m.verify() (and request-level auth()) dropped any custom claims embedded in the token. Custom claims are now reconstructed from the verified payload by stripping only the structural claims the backend adds when minting the token (iss, sub, exp, nbf, iat, jti). User-supplied claims such as aud are preserved. Tokens without custom claims still return claims: null, consistent with the opaque-token path. (#8697) by @jacekradko
Strip private_metadata from the backend resource _raw payload in stripPrivateDataFromObject, preventing it from leaking into __clerk_ssr_state when a User/Organization resource is passed to buildClerkProps. (#8702) by @dominic-clerk
Internal <ConfigureSSO /> refactor to call new org-scoped enterprise connections FAPI endpoints, replacing the /me/ deprecated scope. (#8671) by @iagodahlem
Patch Changes
Fix Core 3 OAuth retry routing to the previously selected provider after an abandoned redirect. (#8494) by @jacekradko
Internal <ConfigureSSO /> refactor to call new org-scoped enterprise connections FAPI endpoints, replacing the /me/ deprecated scope. (#8671) by @iagodahlem
Patch Changes
Add support for Google Workspace SAML provider to self-serve SSO (#8690) by @LauraBeatris
Layer architecture for configure steps per IdP and protocol on <ConfigureSSO /> (#8651) by @LauraBeatris
Prevent keyless mode from activating in CI and other automated environments in framework SDKs. (#8676) by @mwickett
Add support for Microsoft Entra SAML provider to self-serve SSO (#8695) by @LauraBeatris
Replace the telemetry postinstall script with a one-time runtime notice, printed once per process on server runtimes (Node, excluding CI) when the telemetry collector boots against a development instance. Drops the std-env dependency. (#8549) by @jacekradko
Removing postinstall improves the package's supply-chain posture: @clerk/shared no longer executes arbitrary code at install time, aligning with package-manager defaults that increasingly disable install scripts.
Browser-only applications with no server-side Clerk runtime (e.g. a Vite SPA) will not surface an in-band notice. Telemetry behavior and opt-out (telemetry={false} or *_CLERK_TELEMETRY_DISABLED) are unchanged; disclosure for these setups is provided at https://clerk.com/docs/telemetry.
Nest rolldown's shared build chunks under dist/runtime/_chunks/ instead of emitting them flat next to the entry points. The package exposes "./*", which resolves to dist/runtime/*, so the content-hashed internal chunks were being picked up by API-diff tooling whenever a chunk hash shifted. Entry and type resolution are unchanged; the chunks are still referenced by relative path, and external ./_chunks/* package subpaths are blocked. (#8717) by @jacekradko
@clerk/ui@1.15.0
Minor Changes
Internal <ConfigureSSO /> refactor to call new org-scoped enterprise connections FAPI endpoints, replacing the /me/ deprecated scope. (#8671) by @iagodahlem
Patch Changes
Add support for Google Workspace SAML provider to self-serve SSO (#8690) by @LauraBeatris
Layer architecture for configure steps per IdP and protocol on <ConfigureSSO /> (#8651) by @LauraBeatris
Reworks the <ConfigureSSO /> confirmation step and adds a dedicated reset connection dialog: (#8706) by @iagodahlem
Introduces <ResetConnectionDialog /> — a modal-based, type-to-confirm dialog scoped to the wizard container that replaces the inline reset confirmation card. Wraps the destructive delete behind useReverification, clears the local provider selection, and rewinds the wizard to provider selection on success.
Restyles the confirmation step body: unified status header with an inline Active / Inactive badge, grouped Enable SSO and Domain rows, two-column configuration details rendered through ProfileSection.ItemList, outlined Configure again, destructive Reset connection, and an inactive-state banner inside the step footer.
Step.Header now accepts a badge prop so a step can render an inline status pill next to its title without crowding the right-aligned children slot.
OrganizationProfile forwards the shared content ref to <ConfigureSSO /> so the new dialog portals into the wizard chrome when the component is embedded inside the organization profile.
Fix the legal consent checkbox growing in size when its label wraps to a second line while using the simple theme. The checkbox is now aligned to the start of the row so it no longer stretches to match the label height. (#8705) by @dmoerner
Avoid sending duplicate verification codes when persisted email or phone code verifications are already pending. (#8548) by @jacekradko
Adds a wizard-wide reset connection entry on the <ConfigureSSO /> step footers: (#8711) by @iagodahlem
New Step.Footer.Reset compound part that renders a destructive ghost button on the leading edge of the footer and opens the existing ResetConnectionDialog. The slot owns its own open state and gates itself on the current enterprise connection, so it stays hidden on the provider selection step.
Wires the reset entry into the Verify Domain, Configure (Okta and Custom SAML), and Test steps so the reset action is reachable from anywhere in the wizard. The confirmation step keeps its in-body destructive button.
Exposes a configureSSOFooterResetButton element descriptor so the new button surface can be themed via appearance customizations.
Add support for Microsoft Entra SAML provider to self-serve SSO (#8695) by @LauraBeatris
Add mobile support for <ConfigureSSO /> navbar to display application name, logo and organization name (#8675) by @LauraBeatris
Scope the UserProfile active-devices fetch cache by user.id so a session switch or sign-out/sign-in on a shared device no longer renders the previous user's device activity (IP, location, browser/device) from the module-scoped cache. (#8703) by @dominic-clerk
Fixed clerkPlugin() to honor publishableKey and secretKey passed in plugin options when authenticating Fastify requests. The plugin now also exposes request.clerk, which uses the same plugin keys and resolves the correct Clerk API host for non-production publishable keys. (#8640) by @wobsoriano
Prevent keyless mode from activating in CI and other automated environments in framework SDKs. (#8676) by @mwickett
Read VITE_CLERK_UNSAFE_DISABLE_DEVELOPMENT_MODE_CONSOLE_WARNING on the client when React Router is used in SPA mode (or as a library). Previously the env-var shortcut only took effect through the SSR rootAuthLoader, so client-only setups had no way to suppress the development-keys warning without passing unsafe_disableDevelopmentModeConsoleWarning to <ClerkProvider> directly. (#8682) by @jacekradko
Generated by Break Check on 2026-06-03T12:59:15.295Z
Summary
Metric
Count
Packages analyzed
19
Packages with changes
1
🔴 Breaking changes
0
🟡 Non-breaking changes
1
🟢 Additions
0
🤖 This report was reviewed by claude-sonnet-4-6.
Note
Break Check could not snapshot 3 subpaths; the diff below excludes them.
@clerk/astro ./env: Internal Error: Unable to determine module for: /home/runner/_work/javascript/javascript/packages/astro/env.d.ts You have encountered a software defect. Please consider reporting the issue to the maintainers of this application.
@clerk/shared ./cookie: Internal Error: Unable to follow symbol for "Cookies" You have encountered a software defect. Please consider reporting the issue to the maintainers of this application.
@clerk/testing ./cypress: Symbol not found for identifier: Cypress
@clerk/shared
Version: 4.14.0 → 4.15.0 Recommended bump: MINOR Actual bump: MINOR ✅
Static analyzer: Breaking change in function apiUrlFromPublishableKey: Return type changed: "https://api.clerk.com"|"https://api.lclclerk.com"|"https://api.clerkstage.dev" → "https://api.lclclerk.com"|"https://api.clerkstage.dev"|"https://api.clerk.com"
🤖 AI review (reclassified as non-breaking) (99%): The return type is a union of the same three identical string literal members — only their order changed, which is structurally equivalent in TypeScript; no consumer code that was well-typed before will fail to compile or behave differently.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@clerk/backend@3.5.0
Minor Changes
users.replaceUserEmailAddress(userId, { emailAddress })replaces all of a user's email addresses with a single verified, primary email address (PUT /users/{user_id}/email_address).users.replaceUserPhoneNumber(userId, { phoneNumber })replaces all of a user's phone numbers with a single verified, primary phone number (PUT /users/{user_id}/phone_number).users.createUsernow acceptsbannedandlockedparameters to create a user that is already banned or locked.Patch Changes
Emit the "session token from cookie is missing the
azpclaim" warning once per process instead of on every authenticated request. Anazp-less cookie token is reused across requests, so the previous unguardedconsole.warncould flood production logs. (#8698) by @jacekradkoStop
authenticateRequestfrom consuming the incoming request body, which previously left downstream handlers unable to read it (for example a Hono POST route callingc.req.json()). (#8708) by @jacekradkoPrevent keyless mode from activating in CI and other automated environments in framework SDKs. (#8676) by @mwickett
Preserve custom claims when verifying JWT-format M2M tokens.
M2MToken.fromJwtPayloadpreviously hardcodedclaimstonull, soclient.m2m.verify()(and request-levelauth()) dropped any custom claims embedded in the token. Custom claims are now reconstructed from the verified payload by stripping only the structural claims the backend adds when minting the token (iss,sub,exp,nbf,iat,jti). User-supplied claims such asaudare preserved. Tokens without custom claims still returnclaims: null, consistent with the opaque-token path. (#8697) by @jacekradkoStrip
private_metadatafrom the backend resource_rawpayload instripPrivateDataFromObject, preventing it from leaking into__clerk_ssr_statewhen aUser/Organizationresource is passed tobuildClerkProps. (#8702) by @dominic-clerkUpdated dependencies [
afb75e6,c3df67a,86fd38f,8d6bb56,43dfefa,5fc7b21,c2ba134]:@clerk/clerk-js@6.14.0
Minor Changes
<ConfigureSSO />refactor to call new org-scoped enterprise connections FAPI endpoints, replacing the/me/deprecated scope. (#8671) by @iagodahlemPatch Changes
Fix Core 3 OAuth retry routing to the previously selected provider after an abandoned redirect. (#8494) by @jacekradko
Updated dependencies [
afb75e6,c3df67a,86fd38f,8d6bb56,43dfefa,5fc7b21,c2ba134]:@clerk/shared@4.15.0
Minor Changes
<ConfigureSSO />refactor to call new org-scoped enterprise connections FAPI endpoints, replacing the/me/deprecated scope. (#8671) by @iagodahlemPatch Changes
Add support for Google Workspace SAML provider to self-serve SSO (#8690) by @LauraBeatris
Layer architecture for configure steps per IdP and protocol on
<ConfigureSSO />(#8651) by @LauraBeatrisPrevent keyless mode from activating in CI and other automated environments in framework SDKs. (#8676) by @mwickett
Add support for Microsoft Entra SAML provider to self-serve SSO (#8695) by @LauraBeatris
Replace the telemetry
postinstallscript with a one-time runtime notice, printed once per process on server runtimes (Node, excluding CI) when the telemetry collector boots against a development instance. Drops thestd-envdependency. (#8549) by @jacekradkoRemoving
postinstallimproves the package's supply-chain posture:@clerk/sharedno longer executes arbitrary code at install time, aligning with package-manager defaults that increasingly disable install scripts.Browser-only applications with no server-side Clerk runtime (e.g. a Vite SPA) will not surface an in-band notice. Telemetry behavior and opt-out (
telemetry={false}or*_CLERK_TELEMETRY_DISABLED) are unchanged; disclosure for these setups is provided at https://clerk.com/docs/telemetry.Nest rolldown's shared build chunks under
dist/runtime/_chunks/instead of emitting them flat next to the entry points. The package exposes"./*", which resolves todist/runtime/*, so the content-hashed internal chunks were being picked up by API-diff tooling whenever a chunk hash shifted. Entry and type resolution are unchanged; the chunks are still referenced by relative path, and external./_chunks/*package subpaths are blocked. (#8717) by @jacekradko@clerk/ui@1.15.0
Minor Changes
<ConfigureSSO />refactor to call new org-scoped enterprise connections FAPI endpoints, replacing the/me/deprecated scope. (#8671) by @iagodahlemPatch Changes
Add support for Google Workspace SAML provider to self-serve SSO (#8690) by @LauraBeatris
Layer architecture for configure steps per IdP and protocol on
<ConfigureSSO />(#8651) by @LauraBeatrisReworks the
<ConfigureSSO />confirmation step and adds a dedicated reset connection dialog: (#8706) by @iagodahlem<ResetConnectionDialog />— a modal-based, type-to-confirm dialog scoped to the wizard container that replaces the inline reset confirmation card. Wraps the destructive delete behinduseReverification, clears the local provider selection, and rewinds the wizard to provider selection on success.Active/Inactivebadge, grouped Enable SSO and Domain rows, two-column configuration details rendered throughProfileSection.ItemList, outlinedConfigure again, destructiveReset connection, and an inactive-state banner inside the step footer.Step.Headernow accepts abadgeprop so a step can render an inline status pill next to its title without crowding the right-aligned children slot.OrganizationProfileforwards the shared content ref to<ConfigureSSO />so the new dialog portals into the wizard chrome when the component is embedded inside the organization profile."Fix rendering issue for free trial badge." (#8712) by @l-armstrong
Fix the legal consent checkbox growing in size when its label wraps to a second line while using the
simpletheme. The checkbox is now aligned to the start of the row so it no longer stretches to match the label height. (#8705) by @dmoernerAvoid sending duplicate verification codes when persisted email or phone code verifications are already pending. (#8548) by @jacekradko
Adds a wizard-wide reset connection entry on the
<ConfigureSSO />step footers: (#8711) by @iagodahlemStep.Footer.Resetcompound part that renders a destructive ghost button on the leading edge of the footer and opens the existingResetConnectionDialog. The slot owns its own open state and gates itself on the current enterprise connection, so it stays hidden on the provider selection step.configureSSOFooterResetButtonelement descriptor so the new button surface can be themed via appearance customizations.Fix stepper chevron wrapping in
<ConfigureSSO />(#8693) by @alexcarpenterAdd support for Microsoft Entra SAML provider to self-serve SSO (#8695) by @LauraBeatris
Add mobile support for
<ConfigureSSO />navbar to display application name, logo and organization name (#8675) by @LauraBeatrisScope the
UserProfileactive-devices fetch cache byuser.idso a session switch or sign-out/sign-in on a shared device no longer renders the previous user's device activity (IP, location, browser/device) from the module-scoped cache. (#8703) by @dominic-clerkUpdated dependencies [
afb75e6,c3df67a,86fd38f,8d6bb56,43dfefa,5fc7b21,c2ba134]:@clerk/astro@3.3.3
Patch Changes
Prevent keyless mode from activating in CI and other automated environments in framework SDKs. (#8676) by @mwickett
Updated dependencies [
1c42351,1701e0f,afb75e6,c3df67a,ff0cfef,86fd38f,be55c4e,fb184de,8d6bb56,43dfefa,5fc7b21,c2ba134]:@clerk/chrome-extension@3.1.32
Patch Changes
afb75e6,c3df67a,4dd97bd,ef43ff4,03c83ba,152c255,846a145,da93ece,86fd38f,b09788e,8d6bb56,43dfefa,5fc7b21,b07afc4,a1d96f1,c2ba134]:@clerk/expo@3.3.1
Patch Changes
Preserve custom token cache method context when initializing the native Clerk singleton. (#8713) by @mikepitre
Bump the native SDKs pulled into Expo:
clerk-iosto1.1.4andclerk-android-api/clerk-android-uito1.0.23. (#8728) by @mikepitreUpdated dependencies [
afb75e6,c3df67a,ef43ff4,86fd38f,8d6bb56,43dfefa,5fc7b21,c2ba134]:@clerk/expo-passkeys@1.1.1
Patch Changes
afb75e6,c3df67a,86fd38f,8d6bb56,43dfefa,5fc7b21,c2ba134]:@clerk/express@2.1.23
Patch Changes
1c42351,1701e0f,afb75e6,c3df67a,ff0cfef,86fd38f,be55c4e,fb184de,8d6bb56,43dfefa,5fc7b21,c2ba134]:@clerk/fastify@3.1.33
Patch Changes
Fixed
clerkPlugin()to honorpublishableKeyandsecretKeypassed in plugin options when authenticating Fastify requests. The plugin now also exposesrequest.clerk, which uses the same plugin keys and resolves the correct Clerk API host for non-production publishable keys. (#8640) by @wobsorianoUpdated dependencies [
1c42351,1701e0f,afb75e6,c3df67a,ff0cfef,86fd38f,be55c4e,fb184de,8d6bb56,43dfefa,5fc7b21,c2ba134]:@clerk/hono@0.1.33
Patch Changes
1c42351,1701e0f,afb75e6,c3df67a,ff0cfef,86fd38f,be55c4e,fb184de,8d6bb56,43dfefa,5fc7b21,c2ba134]:@clerk/localizations@4.7.1
Patch Changes
Add support for Google Workspace SAML provider to self-serve SSO (#8690) by @LauraBeatris
Layer architecture for configure steps per IdP and protocol on
<ConfigureSSO />(#8651) by @LauraBeatrisAdd support for Microsoft Entra SAML provider to self-serve SSO (#8695) by @LauraBeatris
Updated dependencies [
afb75e6,c3df67a,86fd38f,8d6bb56,43dfefa,5fc7b21,c2ba134]:@clerk/nextjs@7.4.3
Patch Changes
Prevent keyless mode from activating in CI and other automated environments in framework SDKs. (#8676) by @mwickett
Updated dependencies [
1c42351,1701e0f,afb75e6,c3df67a,ff0cfef,86fd38f,be55c4e,fb184de,8d6bb56,43dfefa,5fc7b21,c2ba134]:@clerk/nuxt@2.5.3
Patch Changes
Prevent keyless mode from activating in CI and other automated environments in framework SDKs. (#8676) by @mwickett
Updated dependencies [
1c42351,1701e0f,afb75e6,c3df67a,ff0cfef,86fd38f,be55c4e,fb184de,8d6bb56,43dfefa,5fc7b21,c2ba134]:@clerk/react@6.7.3
Patch Changes
afb75e6,c3df67a,86fd38f,8d6bb56,43dfefa,5fc7b21,c2ba134]:@clerk/react-router@3.3.3
Patch Changes
Prevent keyless mode from activating in CI and other automated environments in framework SDKs. (#8676) by @mwickett
Read
VITE_CLERK_UNSAFE_DISABLE_DEVELOPMENT_MODE_CONSOLE_WARNINGon the client when React Router is used in SPA mode (or as a library). Previously the env-var shortcut only took effect through the SSRrootAuthLoader, so client-only setups had no way to suppress the development-keys warning without passingunsafe_disableDevelopmentModeConsoleWarningto<ClerkProvider>directly. (#8682) by @jacekradkoUpdated dependencies [
1c42351,1701e0f,afb75e6,c3df67a,ff0cfef,86fd38f,be55c4e,fb184de,8d6bb56,43dfefa,5fc7b21,c2ba134]:@clerk/tanstack-react-start@1.3.3
Patch Changes
Prevent keyless mode from activating in CI and other automated environments in framework SDKs. (#8676) by @mwickett
Updated dependencies [
1c42351,1701e0f,afb75e6,c3df67a,ff0cfef,86fd38f,be55c4e,fb184de,8d6bb56,43dfefa,5fc7b21,c2ba134]:@clerk/testing@2.0.35
Patch Changes
1c42351,1701e0f,afb75e6,c3df67a,ff0cfef,86fd38f,be55c4e,fb184de,8d6bb56,43dfefa,5fc7b21,c2ba134]:@clerk/upgrade@2.0.3
Patch Changes
@clerk/vue@2.3.3
Patch Changes
afb75e6,c3df67a,86fd38f,8d6bb56,43dfefa,5fc7b21,c2ba134]:@clerk/msw@0.0.31
Patch Changes
afb75e6,c3df67a,86fd38f,8d6bb56,43dfefa,5fc7b21,c2ba134]: