diff --git a/.changeset/modern-hornets-fold.md b/.changeset/modern-hornets-fold.md new file mode 100644 index 00000000000..a0fb384685f --- /dev/null +++ b/.changeset/modern-hornets-fold.md @@ -0,0 +1,5 @@ +--- +"@clerk/react": patch +--- + +Fix `ReferenceError: Property 'document' doesn't exist` crash in React Native environments by conditionally loading UI scripts only in standard browser contexts. diff --git a/packages/react/src/isomorphicClerk.ts b/packages/react/src/isomorphicClerk.ts index db2cc3adeef..4fc5eef95af 100644 --- a/packages/react/src/isomorphicClerk.ts +++ b/packages/react/src/isomorphicClerk.ts @@ -468,11 +468,13 @@ export class IsomorphicClerk implements IsomorphicLoadedClerk { } try { - const ClerkUI = await this.getClerkUIEntryChunk(); const clerk = await this.getClerkJsEntryChunk(); if (!clerk.loaded) { this.beforeLoad(clerk); + // Only load UI scripts in standard browser environments (not native/headless) + const shouldLoadUi = !this.options.Clerk && this.options.standardBrowser !== false; + const ClerkUI = shouldLoadUi ? await this.getClerkUIEntryChunk() : undefined; await clerk.load({ ...this.options, ui: { ...this.options.ui, ClerkUI } }); } if (clerk.loaded) {