diff --git a/.changeset/happy-drinks-ring.md b/.changeset/happy-drinks-ring.md new file mode 100644 index 00000000000..51ba88172ed --- /dev/null +++ b/.changeset/happy-drinks-ring.md @@ -0,0 +1,6 @@ +--- +"@clerk/clerk-js": patch +"@clerk/shared": patch +--- + +Added development runtime error when mounting `` without active session. diff --git a/packages/clerk-js/src/core/clerk.ts b/packages/clerk-js/src/core/clerk.ts index 4663e15eafe..fe4da6a8e91 100644 --- a/packages/clerk-js/src/core/clerk.ts +++ b/packages/clerk-js/src/core/clerk.ts @@ -1336,6 +1336,15 @@ export class Clerk implements ClerkInterface { }; public __internal_mountOAuthConsent = (node: HTMLDivElement, props?: __internal_OAuthConsentProps) => { + if (noUserExists(this)) { + if (this.#instanceType === 'development') { + throw new ClerkRuntimeError(warnings.cannotRenderOAuthConsentComponentWhenUserDoesNotExist, { + code: CANNOT_RENDER_USER_MISSING_ERROR_CODE, + }); + } + return; + } + this.assertComponentsReady(this.#clerkUI); const component = 'OAuthConsent'; void this.#clerkUI diff --git a/packages/shared/src/internal/clerk-js/warnings.ts b/packages/shared/src/internal/clerk-js/warnings.ts index 2ec160247d8..2686713eaf7 100644 --- a/packages/shared/src/internal/clerk-js/warnings.ts +++ b/packages/shared/src/internal/clerk-js/warnings.ts @@ -62,6 +62,8 @@ const warnings = { 'The component cannot be rendered when user API keys are disabled. Since user API keys are disabled, this is no-op.', cannotRenderAPIKeysComponentForOrgWhenDisabled: 'The component cannot be rendered when organization API keys are disabled. Since organization API keys are disabled, this is no-op.', + cannotRenderOAuthConsentComponentWhenUserDoesNotExist: + ' cannot render unless a user is signed in. Since no user is signed in, this is no-op.', }; type SerializableWarnings = Serializable;