diff --git a/.changeset/session-minter-force-origin.md b/.changeset/session-minter-force-origin.md new file mode 100644 index 00000000000..734aa3a8a70 --- /dev/null +++ b/.changeset/session-minter-force-origin.md @@ -0,0 +1,5 @@ +--- +'@clerk/clerk-js': patch +--- + +Send `force_origin=true` query param on `/tokens` requests when `skipCache` is true, so FAPI Proxy routes to origin instead of Session Minter. diff --git a/packages/clerk-js/src/core/resources/Session.ts b/packages/clerk-js/src/core/resources/Session.ts index ea5e796dbb8..20b2221fd21 100644 --- a/packages/clerk-js/src/core/resources/Session.ts +++ b/packages/clerk-js/src/core/resources/Session.ts @@ -483,7 +483,11 @@ export class Session extends BaseResource implements SessionResource { const params: Record = template ? {} : { organizationId: organizationId ?? null }; const lastActiveToken = this.lastActiveToken?.getRawString(); - const tokenResolver = Token.create(path, params, skipCache ? { debug: 'skip_cache' } : undefined).catch(e => { + const tokenResolver = Token.create( + path, + params, + skipCache ? { debug: 'skip_cache', force_origin: 'true' } : undefined, + ).catch(e => { if (MissingExpiredTokenError.is(e) && lastActiveToken) { return Token.create(path, { ...params }, { expired_token: lastActiveToken }); }