From 08d831dbda502bb11ea7b5427c58524dd861d53f Mon Sep 17 00:00:00 2001 From: Dylan Staley <88163+dstaley@users.noreply.github.com> Date: Thu, 30 Oct 2025 11:40:47 -0500 Subject: [PATCH] fix(clerk-js): Only reload client if session is not present --- .changeset/strict-hornets-kneel.md | 2 ++ packages/clerk-js/src/core/resources/SignIn.ts | 7 +++++-- 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 .changeset/strict-hornets-kneel.md diff --git a/.changeset/strict-hornets-kneel.md b/.changeset/strict-hornets-kneel.md new file mode 100644 index 00000000000..a845151cc84 --- /dev/null +++ b/.changeset/strict-hornets-kneel.md @@ -0,0 +1,2 @@ +--- +--- diff --git a/packages/clerk-js/src/core/resources/SignIn.ts b/packages/clerk-js/src/core/resources/SignIn.ts index 5f9e53b58c2..42a42417803 100644 --- a/packages/clerk-js/src/core/resources/SignIn.ts +++ b/packages/clerk-js/src/core/resources/SignIn.ts @@ -1117,8 +1117,11 @@ class SignInFuture implements SignInFutureResource { throw new Error('Cannot finalize sign-in without a created session.'); } - // Reload the client to prevent an issue where the created session is not picked up. - await SignIn.clerk.client?.reload(); + // Reload the client if the created session is not in the client's sessions. This can happen during modal SSO + // flows where the in-memory client does not have the created session. + if (SignIn.clerk.client && !SignIn.clerk.client.sessions.some(s => s.id === this.resource.createdSessionId)) { + await SignIn.clerk.client.reload(); + } await SignIn.clerk.setActive({ session: this.resource.createdSessionId, navigate }); });