---
title: "@clerk/shared Breaking Changes on npm | Since.dev"
description: "What each @clerk/shared release removed, renamed or changed: 322 breaking changes in 30 versions on npm, each with its source."
canonical_url: https://since.dev/packages/npm/@clerk/shared
last_updated: 2026-03-20
---

# @clerk/shared breaking changes

Every breaking API change we have recorded in @clerk/shared on npm: 322 breaking changes in 30 versions. Below are its newest 6 versions, removals and renames first, each with its source.

Newest change March 20, 2026

## 3.47.3

3 breaking changes, first published March 20, 2026.

- **Signature changed** `types:ActiveSessionResource.touch`  

Was touch: () => Promise<SessionResource>; now touch: (params?: SessionTouchParams) => Promise<SessionResource>. [npmjs.com](https://www.npmjs.com/package/@clerk/shared/v/3.47.3)
- **Signature changed** `types:PendingSessionResource.touch`  

Was touch: () => Promise<SessionResource>; now touch: (params?: SessionTouchParams) => Promise<SessionResource>. [npmjs.com](https://www.npmjs.com/package/@clerk/shared/v/3.47.3)
- **Signature changed** `types:SessionResource.touch`  

Was touch: () => Promise<SessionResource>; now touch: (params?: SessionTouchParams) => Promise<SessionResource>. [npmjs.com](https://www.npmjs.com/package/@clerk/shared/v/3.47.3)

## 3.47.1

1 breaking change, first published February 26, 2026.

- **Signature changed** `react:useSafeLayoutEffect`  

Was const useSafeLayoutEffect: typeof React.useLayoutEffect; now const useSafeLayoutEffect: typeof React.useEffect. [npmjs.com](https://www.npmjs.com/package/@clerk/shared/v/3.47.1)

## 3.47.0

12 breaking changes, first published February 20, 2026.

- **Signature changed** `react:useSafeLayoutEffect`  

Was const useSafeLayoutEffect: typeof React.useEffect; now const useSafeLayoutEffect: typeof React.useLayoutEffect. [npmjs.com](https://www.npmjs.com/package/@clerk/shared/v/3.47.0)
- **Signature changed** `types:__internal_LocalizationResource`  

Was type \_\_internal_LocalizationResource = {locale: string; maintenanceMode: LocalizationValue; roles: {\[r: string\]: LocalizationValue;}; socialButtonsBlockButton: LocalizationValue<'provider'>; socialButtonsBlockButtonManyInView... [npmjs.com](https://www.npmjs.com/package/@clerk/shared/v/3.47.0)
- **Signature changed** `types:__internal_LocalizationResource.billing`  

Was billing: {month: LocalizationValue; year: LocalizationValue; free: LocalizationValue; getStarted: LocalizationValue; manage: LocalizationValue; manageSubscription: LocalizationValue; cancelSubscription: LocalizationValue... [npmjs.com](https://www.npmjs.com/package/@clerk/shared/v/3.47.0)
- **Signature changed** `types:__internal_LocalizationResource.organizationProfile`  

Was organizationProfile: {navbar: {title: LocalizationValue; description: LocalizationValue; general: LocalizationValue; members: LocalizationValue; billing: LocalizationValue; apiKeys: LocalizationValue;}; badge\_\_unverified... [npmjs.com](https://www.npmjs.com/package/@clerk/shared/v/3.47.0)
- **Signature changed** `types:__internal_LocalizationResource.organizationProfile.billingPage`  

Was billingPage: {title: LocalizationValue; start: {headerTitle\_\_payments: LocalizationValue; headerTitle\_\_plans: LocalizationValue; headerTitle\_\_subscriptions: LocalizationValue; headerTitle\_\_statements: LocalizationValue;}... [npmjs.com](https://www.npmjs.com/package/@clerk/shared/v/3.47.0)
- **Signature changed** `types:__internal_LocalizationResource.organizationProfile.billingPage.statementsSection`  

Was statementsSection: {empty: LocalizationValue; itemCaption\_\_paidForPlan: LocalizationValue<'plan' | 'period'>; itemCaption\_\_proratedCredit: LocalizationValue; itemCaption\_\_subscribedAndPaidForPlan: LocalizationValue<'plan' | 'period'>... [npmjs.com](https://www.npmjs.com/package/@clerk/shared/v/3.47.0)
- **Signature changed** `types:__internal_LocalizationResource.userProfile`  

Was userProfile: {mobileButton\_\_menu: LocalizationValue; formButtonPrimary\_\_continue: LocalizationValue; formButtonPrimary\_\_save: LocalizationValue; formButtonPrimary\_\_finish: LocalizationValue; formButtonPrimary\_\_remove... [npmjs.com](https://www.npmjs.com/package/@clerk/shared/v/3.47.0)
- **Signature changed** `types:__internal_LocalizationResource.userProfile.billingPage`  

Was billingPage: {title: LocalizationValue; start: {headerTitle\_\_payments: LocalizationValue; headerTitle\_\_plans: LocalizationValue; headerTitle\_\_subscriptions: LocalizationValue; headerTitle\_\_statements: LocalizationValue;}... [npmjs.com](https://www.npmjs.com/package/@clerk/shared/v/3.47.0)
- **Signature changed** `types:__internal_LocalizationResource.userProfile.billingPage.statementsSection`  

Was statementsSection: {empty: LocalizationValue; itemCaption\_\_paidForPlan: LocalizationValue; itemCaption\_\_proratedCredit: LocalizationValue; itemCaption\_\_subscribedAndPaidForPlan: LocalizationValue; notFound: LocalizationValue... [npmjs.com](https://www.npmjs.com/package/@clerk/shared/v/3.47.0)
- **Signature changed** `types:LocalizationResource.billing`  

Was billing: {month: LocalizationValue; year: LocalizationValue; free: LocalizationValue; getStarted: LocalizationValue; manage: LocalizationValue; manageSubscription: LocalizationValue; cancelSubscription: LocalizationValue... [npmjs.com](https://www.npmjs.com/package/@clerk/shared/v/3.47.0)

And 2 more in this version.

## 3.46.0

8 breaking changes, first published February 18, 2026.

- **Signature changed** `apiUrlFromPublishableKey`  

Was const apiUrlFromPublishableKey: (publishableKey: string) => "https://api.lclclerk.com" | "https://api.clerkstage.dev" | "https://api.clerk.com"; now const apiUrlFromPublishableKey: (publishableKey: string) => "https://api.clerk.com" |... [npmjs.com](https://www.npmjs.com/package/@clerk/shared/v/3.46.0)
- **Signature changed** `types:__internal_LocalizationResource`  

Was type \_\_internal_LocalizationResource = {locale: string; maintenanceMode: LocalizationValue; roles: {\[r: string\]: LocalizationValue;}; socialButtonsBlockButton: LocalizationValue<'provider'>; socialButtonsBlockButtonManyInView... [npmjs.com](https://www.npmjs.com/package/@clerk/shared/v/3.46.0)
- **Signature changed** `types:__internal_LocalizationResource.billing`  

Was billing: {month: LocalizationValue; year: LocalizationValue; free: LocalizationValue; getStarted: LocalizationValue; manage: LocalizationValue; manageSubscription: LocalizationValue; cancelSubscription: LocalizationValue... [npmjs.com](https://www.npmjs.com/package/@clerk/shared/v/3.46.0)
- **Signature changed** `types:Appearance`  

Was type Appearance<T$1 = Theme> = T$1 & GlobalAppearanceOptions & {signIn?: T$1; signUp?: T$1; userAvatar?: T$1; userButton?: T$1; userProfile?: T$1; userVerification?: T$1; organizationSwitcher?: T$1; organizationList?: T$1... [npmjs.com](https://www.npmjs.com/package/@clerk/shared/v/3.46.0)
- **Signature changed** `types:ElementsConfig`  

Was type ElementsConfig = {button: WithOptions<string>; input: WithOptions; checkbox: WithOptions; radio: WithOptions; table: WithOptions; rootBox: WithOptions; cardBox: WithOptions; card: WithOptions; actionCard: WithOptions; popoverBox... [npmjs.com](https://www.npmjs.com/package/@clerk/shared/v/3.46.0)
- **Signature changed** `types:LocalizationResource.billing`  

Was billing: {month: LocalizationValue; year: LocalizationValue; free: LocalizationValue; getStarted: LocalizationValue; manage: LocalizationValue; manageSubscription: LocalizationValue; cancelSubscription: LocalizationValue... [npmjs.com](https://www.npmjs.com/package/@clerk/shared/v/3.46.0)
- **Signature changed** `types:SessionTask.key`  

Was key: 'choose-organization' | 'reset-password'; now key: 'choose-organization' | 'reset-password' | 'setup-mfa'. [npmjs.com](https://www.npmjs.com/package/@clerk/shared/v/3.46.0)
- **Signature changed** `types:SignUpData`  

Was type SignUpData = {allowlist_only: boolean; progressive: boolean; captcha_enabled: boolean; mode: SignUpModes; legal_consent_enabled: boolean;}; now type SignUpData = {allowlist_only: boolean; progressive: boolean; captcha_enabled... [npmjs.com](https://www.npmjs.com/package/@clerk/shared/v/3.46.0)

## 3.45.1

1 breaking change, first published February 17, 2026.

- **Signature changed** `apiUrlFromPublishableKey`  

Was const apiUrlFromPublishableKey: (publishableKey: string) => "https://api.clerk.com" | "https://api.lclclerk.com" | "https://api.clerkstage.dev"; now const apiUrlFromPublishableKey: (publishableKey: string) => "https://api.lclclerk.com"... [npmjs.com](https://www.npmjs.com/package/@clerk/shared/v/3.45.1)

## 3.45.0

1 breaking change, first published February 13, 2026.

- **Signature changed** `react:useSafeLayoutEffect`  

Was const useSafeLayoutEffect: typeof React.useLayoutEffect; now const useSafeLayoutEffect: typeof React.useEffect. [npmjs.com](https://www.npmjs.com/package/@clerk/shared/v/3.45.0)

## Check your code

These are the changes. To see which of them reach your code, [scan a public repository](https://since.dev/scan.md), or have your coding agent call `check_code` with your manifest or lockfile over [MCP](https://since.dev/docs.md#mcp). [The API](https://since.dev/docs.md#api) reads every change in every version, not only the newest. On Team and up, a fix pull request opens for the changes that reach a connected repository. Nothing merges or deploys.

## Put your code on continuous management.

Scan a public repository now, or give your agent one line.

### See how out of date your code is.

[Scan a repository](https://since.dev/scan.md). Any public GitHub repository. No sign-in.

### Tell your agent what changed since it was trained.

`claude mcp add --transport http since https://api.since.dev/mcp`

---

Every page on this site as Markdown: https://since.dev/sitemap.md. For agents: https://since.dev/llms.txt.
