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 }); });