@clerk/backend breaking changes
Every breaking API change we have recorded in @clerk/backend on npm: 77 breaking changes in 8 versions. Below are its newest 6 versions, removals and renames first, each with its source.
Newest change February 27, 2026

On this page
2.33.0
- Removed
internal:getMachineTokenType
getMachineTokenType was removed in @clerk/backend 2.33.0 npmjs.com - Removed
internal:isMachineTokenType
isMachineTokenType was removed in @clerk/backend 2.33.0 npmjs.com - Signature changed
errors:MachineTokenVerificationError
Was class MachineTokenVerificationError extends Error; now class MachineTokenVerificationError extends ClerkError. npmjs.com - Signature changed
errors:MachineTokenVerificationError.action
Was action?: TokenVerificationErrorAction; now readonly action?: TokenVerificationErrorAction. npmjs.com - Signature changed
errors:MachineTokenVerificationError.code
Was code: MachineTokenVerificationErrorCode; now readonly code: MachineTokenVerificationErrorCode. npmjs.com - Signature changed
errors:MachineTokenVerificationError.status
Was status?: number; now readonly status?: number. npmjs.com - Signature changed
verifyToken
Was const verifyToken: (token: string, options: {audience?: string | string[] | undefined; authorizedParties?: string[] | undefined; clockSkewInMs?: number | undefined; headerType?: string | string[] | undefined; secretKey?: string |... npmjs.com
2.31.0
- Signature changed
ExternalAccount.constructor
Was constructor(id: string, provider: string, identificationId: string, externalId: string, approvedScopes: string, emailAddress: string, firstName: string, lastName: string, imageUrl: string, username: string | null, phoneNumber: string |... npmjs.com
2.29.3
- Signature changed
OauthAccessToken.constructor
Was constructor(externalAccountId: string, provider: string, token: string, publicMetadata: Record<string, unknown> | undefined, label: string, scopes?: string[] | undefined, tokenSecret?: string | undefined, expiresAt?: number |... npmjs.com
2.29.0
- Signature changed
internal:constants
Was const constants: {readonly Attributes: {readonly AuthToken: "__clerkAuthToken"; readonly AuthSignature: "__clerkAuthSignature"; readonly AuthStatus: "__clerkAuthStatus"; readonly AuthReason: "__clerkAuthReason"; readonly AuthMessage... npmjs.com
2.26.0
- Signature changed
errors:MachineTokenVerificationError.constructor
Was constructor({message, code, status}: {message: string; code: MachineTokenVerificationErrorCode; status: number;}); now constructor({message, code, status, action}: {message: string; code: MachineTokenVerificationErrorCode; status?... npmjs.com - Signature changed
errors:MachineTokenVerificationError.status
Was status: number; now status?: number. npmjs.com - Signature changed
errors:MachineTokenVerificationErrorCode
Was const MachineTokenVerificationErrorCode: {readonly TokenInvalid: "token-invalid"; readonly InvalidSecretKey: "secret-key-invalid"; readonly UnexpectedError: "unexpected-error";}; now const MachineTokenVerificationErrorCode: {readonly... npmjs.com - Signature changed
jwt:VerifyJwtOptions
Was type VerifyJwtOptions = {audience?: string | string[]; authorizedParties?: string[]; clockSkewInMs?: number; key: JsonWebKey | string;}; now type VerifyJwtOptions = {audience?: string | string[]; authorizedParties?: string[]... npmjs.com - Signature changed
verifyToken
Was const verifyToken: (token: string, options: {audience?: string | string[] | undefined; authorizedParties?: string[] | undefined; clockSkewInMs?: number | undefined; secretKey?: string | undefined; apiUrl?: string | undefined... npmjs.com
2.23.0
- Signature changed
SessionWebhookEvent
Was type SessionWebhookEvent = Webhook<'session.created' | 'session.ended' | 'session.removed' | 'session.revoked', SessionJSON>; now type SessionWebhookEvent = Webhook<'session.created' | 'session.ended' | 'session.removed' |... npmjs.com - Signature changed
UserWebhookEvent
Was type UserWebhookEvent = Webhook<'user.created' | 'user.updated', UserJSON> | Webhook<'user.deleted', DeletedObjectJSON>; now type UserWebhookEvent = Webhook<'user.created' | 'user.updated', UserJSON> | Webhook<'user.deleted'... npmjs.com
Check your code
These are the changes. To see which of them reach your code, scan a public repository, or have your coding agent call check_code with your manifest or lockfile over MCP. The 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.
Tell your agent what changed since it was trained.
claude mcp add --transport http since https://api.since.dev/mcp