@clerk/localizations
4.24.0 · 20 Oct 2026MIT727.1k / weekRepositoryHomepagenpmAtom feed
371 stable releases, newest first, by release line. Notes are quoted as the maintainers published them.
4.24.0
20 Oct 2026Support passkeys as a second factor during sign-in and session reverification.
When a user has a passkey, the prebuilt
<SignIn/>and<UserVerification/>
components preselect it as the second factor, as they already do for the first
factor. Other methods stay available under "Use another method".To use it, your instance must allow passkeys to satisfy the second factor. This
is on by default for instances created after 2026-07-08, and can be turned on
in the Dashboard for older ones. Web apps also need to opt in to the passkey
second factor update in the Dashboard.If you build a custom flow,
supportedSecondFactorscan now includepasskey.
CallsignIn.authenticateWithPasskey()to complete it.Passkeys are no longer preselected, for either factor, where the SDK reports
that WebAuthn is unavailable (for example, Electron apps without passkey
support enabled).Add a
modulefield pointing to the ESM build, so bundlers that don't readexports(such as Parcel in Plasmo-based Chrome extensions) can tree-shake unused locales.
Minor Changes
Support passkeys as a second factor during sign-in and session reverification.
When a user has a passkey, the prebuilt
<SignIn/>and<UserVerification/>
components preselect it as the second factor, as they already do for the first
factor. Other methods stay available under "Use another method".To use it, your instance must allow passkeys to satisfy the second factor. This
is on by default for instances created after 2026-07-08, and can be turned on
in the Dashboard for older ones. Web apps also need to opt in to the passkey
second factor update in the Dashboard.If you build a custom flow,
supportedSecondFactorscan now includepasskey.
CallsignIn.authenticateWithPasskey()to complete it.Passkeys are no longer preselected, for either factor, where the SDK reports
that WebAuthn is unavailable (for example, Electron apps without passkey
support enabled).
Patch Changes
Add a
modulefield pointing to the ESM build, so bundlers that don't readexports(such as Parcel in Plasmo-based Chrome extensions) can tree-shake unused locales.
4.23.0
9 Oct 2026Add a role mapping step to the self-serve Directory Sync setup in
<OrganizationProfile />. Organization admins can now assign an organization role to each directory group their identity provider pushes, set which group wins when a member belongs to several, and turn role syncing on or off. Members in no mapped group keep the organization's default role. The step is read-only for members without theorg:sys_memberships:managepermission and while the organization's role set is being migrated.
Minor Changes
Add a role mapping step to the self-serve Directory Sync setup in
<OrganizationProfile />. Organization admins can now assign an organization role to each directory group their identity provider pushes, set which group wins when a member belongs to several, and turn role syncing on or off. Members in no mapped group keep the organization's default role. The step is read-only for members without theorg:sys_memberships:managepermission and while the organization's role set is being migrated.
4.22.1
7 Oct 2026Only updates a dependency:@clerk/shared 4.39.1
4.22.0
5 Oct 2026The self-serve SSO configuration (
<OrganizationProfile />enterprise connection page and theConfigureSSOSAML steps) now shows every IdP signing certificate a SAML connection trusts, with its expiry, and lets an admin add certificates from a file (a PEM bundle adds several) or remove one, so an IdP key rotation no longer needs a replacement timed with the IdP. Saving sends the whole list and only when it changed. The list holds at most five certificates. NewconfigureSSOCertificateList*andconfigureSSOCertificatePrimaryBadgeappearance element descriptors cover the list, and newconfigureSSO.signingCertificates.*localization keys hold its strings.
Minor Changes
The self-serve SSO configuration (
<OrganizationProfile />enterprise connection page and theConfigureSSOSAML steps) now shows every IdP signing certificate a SAML connection trusts, with its expiry, and lets an admin add certificates from a file (a PEM bundle adds several) or remove one, so an IdP key rotation no longer needs a replacement timed with the IdP. Saving sends the whole list and only when it changed. The list holds at most five certificates. NewconfigureSSOCertificateList*andconfigureSSOCertificatePrimaryBadgeappearance element descriptors cover the list, and newconfigureSSO.signingCertificates.*localization keys hold its strings.
4.21.1 – 4.21.22 releases that only update dependencies@clerk/shared 4.38.0Show each
- 4.21.21 Oct 2026@clerk/shared 4.38.0
- 4.21.130 Sep 2026@clerk/shared 4.37.1
4.21.0
29 Sep 2026Support Google Workspace directories in Directory Sync. Organization admins can upload a service account key and delegated admin email from the setup flow, start a sync on demand, and see the result of the last one.
DirectorySyncgainssetCredentials(),sync(),getSyncStatus(), andcredentialsConfigured.Update the SSO and Directory Sync sections of the
<OrganizationProfile />Security page to the latest designs. Both sections now show a "Configure" button until something is set up (SSO then shows "Add connection"), and SSO connection rows show the identity provider's logo and an actions menu (Edit, Continue configuration, Activate/Deactivate, Remove). These actions have been removed from the SSO connection page, and status badges are no longer color-coded. Okta logos now follow the theme's foreground color, so they stay visible in dark mode, including on the enterprise connection chooser and in<UserProfile />.The SSO button uses the new
ssoSection.primaryButton__configurelocalization key;ssoSection.primaryButton__startConfigurationis deprecated and no longer used. IndirectorySyncSection,primaryButton__startConfigurationis renamed toprimaryButton__configureandbadge__unconfiguredis removed.Add a localized message for the
too_many_unverified_identificationserror, shown when adding an email address or phone number is blocked by pending verifications or an incomplete passkey setup.
Minor Changes
Support Google Workspace directories in Directory Sync. Organization admins can upload a service account key and delegated admin email from the setup flow, start a sync on demand, and see the result of the last one.
DirectorySyncgainssetCredentials(),sync(),getSyncStatus(), andcredentialsConfigured.Update the SSO and Directory Sync sections of the
<OrganizationProfile />Security page to the latest designs. Both sections now show a "Configure" button until something is set up (SSO then shows "Add connection"), and SSO connection rows show the identity provider's logo and an actions menu (Edit, Continue configuration, Activate/Deactivate, Remove). These actions have been removed from the SSO connection page, and status badges are no longer color-coded. Okta logos now follow the theme's foreground color, so they stay visible in dark mode, including on the enterprise connection chooser and in<UserProfile />.The SSO button uses the new
ssoSection.primaryButton__configurelocalization key;ssoSection.primaryButton__startConfigurationis deprecated and no longer used. IndirectorySyncSection,primaryButton__startConfigurationis renamed toprimaryButton__configureandbadge__unconfiguredis removed.
Patch Changes
Add a localized message for the
too_many_unverified_identificationserror, shown when adding an email address or phone number is blocked by pending verifications or an incomplete passkey setup.
4.20.0
25 Sep 2026<SignIn />and<SignUp />show a dedicated screen when a request is blocked, with a reference the user can quote to support.action_blockederrors now exposetraceId,title,description,linkUrl,linkText,kindanddataonmeta.Fix enterprise SSO sign-ins erroring instead of showing a verification challenge raised while handing off to the identity provider.
If you use the prebuilt
<SignIn />component, there is nothing to do. If you have Clerk Protect enabled and callsignIn.authenticateWithRedirect()orsignIn.authenticateWithPopup()from a custom sign-in flow, catch aClerkRuntimeErrorwith codeprotect_check_requiredand show the verification challenge, to avoid a stalled sign-in.That error means a verification challenge has to be completed before the sign-in can redirect. It replaces the generic "not supported" error these methods threw before. When it is thrown, the sign-in is gated:
signIn.protectCheckis set, or its status isneeds_protect_check. For enterprise SSO, run the challenge and then callauthenticateWithRedirect()again withcontinueSignIn: true. If the server has already prepared the redirect, the sign-in continues to the identity provider and the challenge runs when it returns, so no error is thrown.
Minor Changes
<SignIn />and<SignUp />show a dedicated screen when a request is blocked, with a reference the user can quote to support.action_blockederrors now exposetraceId,title,description,linkUrl,linkText,kindanddataonmeta.
Patch Changes
Fix enterprise SSO sign-ins erroring instead of showing a verification challenge raised while handing off to the identity provider.
If you use the prebuilt
<SignIn />component, there is nothing to do. If you have Clerk Protect enabled and callsignIn.authenticateWithRedirect()orsignIn.authenticateWithPopup()from a custom sign-in flow, catch aClerkRuntimeErrorwith codeprotect_check_requiredand show the verification challenge, to avoid a stalled sign-in.That error means a verification challenge has to be completed before the sign-in can redirect. It replaces the generic "not supported" error these methods threw before. When it is thrown, the sign-in is gated:
signIn.protectCheckis set, or its status isneeds_protect_check. For enterprise SSO, run the challenge and then callauthenticateWithRedirect()again withcontinueSignIn: true. If the server has already prepared the redirect, the sign-in continues to the identity provider and the challenge runs when it returns, so no error is thrown.
4.19.0
24 Sep 2026The "Add members" card on the SSO allow list page of
<OrganizationProfile />now offers two ways to add people: by email address, or every member with a given role at once. Members whose email address is not served by one of the organization's enterprise connections are skipped. When nothing could be added the card stays open and says why, and when some were added it moves to a success step that reports how many were skipped.For custom flows,
organization.ssoBypassAllowlistgainsaddUsers({ userIds }), which calls the new bulk endpoint in batches of 100 and returns the added entries together with the users that could not be added and why.Inputs marked to be ignored by password managers now also carry the Bitwarden, LastPass and Dashlane opt-out attributes, so those extensions stop offering to fill fields such as the allow list email address.
The member picker that the "Add member" card shipped with in 4.18.0 is gone, and so are its localization keys under
organizationProfile.securityPage.ssoBypassPage.addForm:memberLabel,memberPlaceholder,changeButtonandnoResults. The feature was never enabled on any instance, so no application depends on them.New customization handles: the
organizationProfileSecuritySsoBypassEmailInput,organizationProfileSecuritySsoBypassRoleWarning,organizationProfileSecuritySsoBypassFailureandorganizationProfileSecuritySsoBypassBulkResultappearance elements.Localize icon-only social sign-in button names using
socialButtonsBlockButtonand exclude decorative provider icons from the accessibility tree. AddformFieldAction__showPasswordandformFieldAction__hidePasswordlocalization keys for password visibility controls, with translations for every supported locale and English fallback for older localization resources.Show the provider logo next to each connection name on the enterprise account chooser.
Minor Changes
The "Add members" card on the SSO allow list page of
<OrganizationProfile />now offers two ways to add people: by email address, or every member with a given role at once. Members whose email address is not served by one of the organization's enterprise connections are skipped. When nothing could be added the card stays open and says why, and when some were added it moves to a success step that reports how many were skipped.For custom flows,
organization.ssoBypassAllowlistgainsaddUsers({ userIds }), which calls the new bulk endpoint in batches of 100 and returns the added entries together with the users that could not be added and why.Inputs marked to be ignored by password managers now also carry the Bitwarden, LastPass and Dashlane opt-out attributes, so those extensions stop offering to fill fields such as the allow list email address.
The member picker that the "Add member" card shipped with in 4.18.0 is gone, and so are its localization keys under
organizationProfile.securityPage.ssoBypassPage.addForm:memberLabel,memberPlaceholder,changeButtonandnoResults. The feature was never enabled on any instance, so no application depends on them.New customization handles: the
organizationProfileSecuritySsoBypassEmailInput,organizationProfileSecuritySsoBypassRoleWarning,organizationProfileSecuritySsoBypassFailureandorganizationProfileSecuritySsoBypassBulkResultappearance elements.Localize icon-only social sign-in button names using
socialButtonsBlockButtonand exclude decorative provider icons from the accessibility tree. AddformFieldAction__showPasswordandformFieldAction__hidePasswordlocalization keys for password visibility controls, with translations for every supported locale and English fallback for older localization resources.
Patch Changes
Show the provider logo next to each connection name on the enterprise account chooser.
4.18.0
23 Sep 2026Rename the SSO fallback sign-in flow to SSO bypass, matching the name the feature ships under. The sign-in resource's
ssoFallbackFirstFactorsis nowssoBypassFirstFactorsand reads thesso_bypass_first_factorsfield from the API, thesignIn.ssoFallbacklocalization keys are nowsignIn.ssoBypass, and thessoFallbackcard action element id is nowssoBypass. The flow has not been enabled on any instance, so no application is affected by the old names going away.Add the ability for Organization admins to manage the SSO bypass allowlist from the Security page of
<OrganizationProfile />.For custom flows,
organization.ssoBypassAllowlistexposesgetUsers(),addUser({ userId })andremoveUser(userId).Each enterprise connection listed on the organization Security page now opens its own page. It lists the connection name and domains, the service provider values to copy into the identity provider, the identity provider configuration behind an Edit form, and the connection settings as a form you save. The header carries one action, either Activate or Continue setup, and deactivating or removing the connection lives in a Danger zone section at the bottom of the page. The row menu is gone; click the row instead.
The setup wizard's domains step now shows a checkbox per verified domain, so an admin picks which domains a connection covers. A domain another connection of the organization already authenticates is disabled and labelled with that connection's name, and an error from creating the connection is shown on the provider step instead of being dropped.
New customization handles ship with it: the
organizationProfileSecuritySsoConnectionRowandorganizationProfileSecuritySsoConnectionPageappearance elements, theconfigureSSOVerifyDomainCardCheckboxelement, theclaimedbadge id, the newFieldIdvalues for the connection settings, and thessoConnectionName,ssoConnectionDomains,ssoConnectionServiceProvider,ssoConnectionIdentityProvider,ssoConnectionSettingsandssoConnectionDangerZoneProfileSectionIdvalues.
Minor Changes
Rename the SSO fallback sign-in flow to SSO bypass, matching the name the feature ships under. The sign-in resource's
ssoFallbackFirstFactorsis nowssoBypassFirstFactorsand reads thesso_bypass_first_factorsfield from the API, thesignIn.ssoFallbacklocalization keys are nowsignIn.ssoBypass, and thessoFallbackcard action element id is nowssoBypass. The flow has not been enabled on any instance, so no application is affected by the old names going away.Add the ability for Organization admins to manage the SSO bypass allowlist from the Security page of
<OrganizationProfile />.For custom flows,
organization.ssoBypassAllowlistexposesgetUsers(),addUser({ userId })andremoveUser(userId).
Patch Changes
Each enterprise connection listed on the organization Security page now opens its own page. It lists the connection name and domains, the service provider values to copy into the identity provider, the identity provider configuration behind an Edit form, and the connection settings as a form you save. The header carries one action, either Activate or Continue setup, and deactivating or removing the connection lives in a Danger zone section at the bottom of the page. The row menu is gone; click the row instead.
The setup wizard's domains step now shows a checkbox per verified domain, so an admin picks which domains a connection covers. A domain another connection of the organization already authenticates is disabled and labelled with that connection's name, and an error from creating the connection is shown on the provider step instead of being dropped.
New customization handles ship with it: the
organizationProfileSecuritySsoConnectionRowandorganizationProfileSecuritySsoConnectionPageappearance elements, theconfigureSSOVerifyDomainCardCheckboxelement, theclaimedbadge id, the newFieldIdvalues for the connection settings, and thessoConnectionName,ssoConnectionDomains,ssoConnectionServiceProvider,ssoConnectionIdentityProvider,ssoConnectionSettingsandssoConnectionDangerZoneProfileSectionIdvalues.
4.17.1
15 Sep 2026The organization Security page now lists every enterprise SSO connection of the organization, each with its own status, domains, and actions. The SSO wizard edits one explicit connection, and a banner names it when the organization has more than one. Changing a provider or removing a connection now targets that connection instead of the first one returned by the API.
Patch Changes
The organization Security page now lists every enterprise SSO connection of the organization, each with its own status, domains, and actions. The SSO wizard edits one explicit connection, and a banner names it when the organization has more than one. Changing a provider or removing a connection now targets that connection instead of the first one returned by the API.
4.17.0
15 Sep 2026Introduce self-serve Directory Sync (SCIM) capabilities and related functionality.
Add the SSO fallback sign-in flow to
<SignIn />, for enterprise users the instance has allowlisted to sign in with an email code when they cannot reach their identity provider.For such a user the sign-in no longer redirects straight to the identity provider. It shows the SSO action — or the connection picker, when several connections serve the address — alongside a "Can't use SSO?" link leading to the standard email code step, which carries a notice that the organization requires single sign-on and that the attempt is recorded. Users without a fallback, and instances without the feature, are unaffected.
Custom flows can read the same factor from the new
ssoFallbackFirstFactorsproperty on the sign-in resource. The flow adds thesignIn.enterpriseSSOandsignIn.ssoFallbacklocalization keys and thessoFallbackcard action element id.Update tr-TR waitlist translations
Minor Changes
Introduce self-serve Directory Sync (SCIM) capabilities and related functionality.
Add the SSO fallback sign-in flow to
<SignIn />, for enterprise users the instance has allowlisted to sign in with an email code when they cannot reach their identity provider.For such a user the sign-in no longer redirects straight to the identity provider. It shows the SSO action — or the connection picker, when several connections serve the address — alongside a "Can't use SSO?" link leading to the standard email code step, which carries a notice that the organization requires single sign-on and that the attempt is recorded. Users without a fallback, and instances without the feature, are unaffected.
Custom flows can read the same factor from the new
ssoFallbackFirstFactorsproperty on the sign-in resource. The flow adds thesignIn.enterpriseSSOandsignIn.ssoFallbacklocalization keys and thessoFallbackcard action element id.
Patch Changes
Update tr-TR waitlist translations
Improve Finnish translations
Update Hebrew localization for OAuth consent messages
4.16.1
9 Sep 2026Only updates a dependency:@clerk/shared 4.31.1
4.16.0
2 Sep 2026Add an authenticated OAuth device verification component and workflow hook for approving or denying OAuth Device Authorization Grant requests.
Minor Changes
Add an authenticated OAuth device verification component and workflow hook for approving or denying OAuth Device Authorization Grant requests.
4.15.8
28 Aug 2026Display a proper message when a sign-in or invitation link is invalid or has expired. Previously these errors rendered the raw API copy "This ticket is invalid. Make sure you're using a valid ticket generated by Clerk.", which refers to Clerk implementation details that are meaningless to the end user signing in. The new messages are available under the
unstable__errors.ticket_invalid_codeandunstable__errors.ticket_expired_codelocalization keys.
Patch Changes
Display a proper message when a sign-in or invitation link is invalid or has expired. Previously these errors rendered the raw API copy "This ticket is invalid. Make sure you're using a valid ticket generated by Clerk.", which refers to Clerk implementation details that are meaningless to the end user signing in. The new messages are available under the
unstable__errors.ticket_invalid_codeandunstable__errors.ticket_expired_codelocalization keys.
4.15.5 – 4.15.73 releases that only update dependencies@clerk/shared 4.30.1Show each
- 4.15.725 Aug 2026@clerk/shared 4.30.1
- 4.15.624 Aug 2026@clerk/shared 4.30.0
- 4.15.520 Aug 2026@clerk/shared 4.29.3
4.15.4
18 Aug 2026Display a proper message when a password is rejected for matching one of the account's identifiers. Previously this error rendered as the incomplete sentence "Your password must contain ." on sign-up, reset password, and the user profile password form. The new message is available under the
unstable__errors.form_password_matches_identifierlocalization key, and any password error the UI does not recognize now falls back to the message returned by the API instead of an empty sentence.
Patch Changes
Display a proper message when a password is rejected for matching one of the account's identifiers. Previously this error rendered as the incomplete sentence "Your password must contain ." on sign-up, reset password, and the user profile password form. The new message is available under the
unstable__errors.form_password_matches_identifierlocalization key, and any password error the UI does not recognize now falls back to the message returned by the API instead of an empty sentence.
4.15.3
14 Aug 2026Add a "Back" action to the sign-in second-factor and client-trust steps, letting a stuck user abandon the attempt and return to the sign-in start.
Patch Changes
Add a "Back" action to the sign-in second-factor and client-trust steps, letting a stuck user abandon the attempt and return to the sign-in start.
4.13.10 – 4.15.25 releases that only update dependencies@clerk/shared 4.29.0Show each
- 4.15.213 Aug 2026@clerk/shared 4.29.0
- 4.15.110 Aug 2026@clerk/shared 4.28.1
- 4.14.27 Aug 2026@clerk/shared 4.27.1
- 4.14.16 Aug 2026@clerk/shared 4.27.0
- 4.13.1031 Jul 2026@clerk/shared 4.25.10
4.13.9
29 Jul 2026Add support for configuring custom OpenID Connect enterprise connections through the Organization Profile.
Expose whether an organization member has been deprovisioned, and mark deprovisioned members as inactive in the Organization Profile.
Patch Changes
Add support for configuring custom OpenID Connect enterprise connections through the Organization Profile.
Expose whether an organization member has been deprovisioned, and mark deprovisioned members as inactive in the Organization Profile.
4.13.8
24 Jul 2026Reading the note…
4.13.7
23 Jul 2026Reading the note…
4.13.6
21 Jul 2026Reading the note…
4.13.5
16 Jul 2026Reading the note…
4.13.4
15 Jul 2026Reading the note…
4.13.3
14 Jul 2026Reading the note…
4.13.2
9 Jul 2026Reading the note…
4.13.1
9 Jul 2026Reading the note…
4.13.0
7 Jul 2026Reading the note…
4.12.1
6 Jul 2026Reading the note…
4.12.0
30 Jun 2026Reading the note…
4.11.1
29 Jun 2026Reading the note…
4.11.0
25 Jun 2026Reading the note…
4.10.0
25 Jun 2026Reading the note…
4.9.3
23 Jun 2026Reading the note…
4.9.2
19 Jun 2026Reading the note…
4.9.1
18 Jun 2026Reading the note…
4.9.0
17 Jun 2026Reading the note…
4.8.2
15 Jun 2026Reading the note…
4.8.1
11 Jun 2026Reading the note…
4.8.0
10 Jun 2026Reading the note…
4.7.2
10 Jun 2026Reading the note…
4.7.1
3 Jun 2026Reading the note…
4.7.0
27 May 2026Reading the note…