File tree 2 files changed +15
-3
lines changed
packages/nextjs/src/app-router/server
2 files changed +15
-3
lines changed Original file line number Diff line number Diff line change
1
+ ---
2
+ ' @clerk/nextjs ' : patch
3
+ ---
4
+
5
+ Avoid calling ` safeParseClerkFile ` before checking if keyless is allowed.
Original file line number Diff line number Diff line change @@ -4,7 +4,6 @@ import React from 'react';
4
4
5
5
import { PromisifiedAuthProvider } from '../../client-boundary/PromisifiedAuthProvider' ;
6
6
import { getDynamicAuthData } from '../../server/buildClerkProps' ;
7
- import { safeParseClerkFile } from '../../server/keyless-node' ;
8
7
import type { NextClerkProviderProps } from '../../types' ;
9
8
import { canUseKeyless } from '../../utils/feature-flags' ;
10
9
import { mergeNextClerkPropsWithEnv } from '../../utils/mergeNextClerkPropsWithEnv' ;
@@ -80,8 +79,16 @@ export async function ClerkProvider(
80
79
</ ClientClerkProvider >
81
80
) ;
82
81
83
- const runningWithClaimedKeys = propsWithEnvs . publishableKey === safeParseClerkFile ( ) ?. publishableKey ;
84
- const shouldRunAsKeyless = ( ! propsWithEnvs . publishableKey || runningWithClaimedKeys ) && canUseKeyless ;
82
+ let [ shouldRunAsKeyless , runningWithClaimedKeys ] = [ false , false ] ;
83
+ if ( canUseKeyless ) {
84
+ const locallyStorePublishableKey = await import ( '../../server/keyless-node.js' )
85
+ . then ( mod => mod . safeParseClerkFile ( ) ?. publishableKey )
86
+ . catch ( ( ) => undefined ) ;
87
+
88
+ runningWithClaimedKeys =
89
+ Boolean ( propsWithEnvs . publishableKey ) && propsWithEnvs . publishableKey === locallyStorePublishableKey ;
90
+ shouldRunAsKeyless = ! propsWithEnvs . publishableKey || runningWithClaimedKeys ;
91
+ }
85
92
86
93
if ( shouldRunAsKeyless ) {
87
94
// NOTE: Create or read keys on every render. Usually this means only on hard refresh or hard navigations.
You can’t perform that action at this time.
0 commit comments