You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[@clerk/react-router] SSO from sign-in with legal compliance enabled fails on complete-sign-up when calling signUp.update({ legalAccepted: true }) #8337
With legal compliance enabled, starting OAuth SSO from a custom sign-in page can lead to a continued sign-up flow that lands on a custom complete-sign-up page with missingFields = ['legal_accepted'].
Calling signUp.update({ legalAccepted: true, ... }) from that page fails with:
network response: 405 Method Not Allowed
UI/runtime error: Failed to execute 'json' on 'Response': Unexpected end of JSON input
This looks like a mismatch between:
the documented support for carrying legalAccepted through SSO-related flows
the current @clerk/react-router / future API surface
the runtime behavior of the client signUp.update() continuation path
Environment
App stack:
@clerk/react-router: reproduced on 3.0.12, then upgraded and still investigating on 3.1.2
@clerk/localizations: reproduced on 4.4.0, upgraded to 4.5.2
local installed Clerk transitives before upgrade:
@clerk/react: 6.2.1
@clerk/shared: 4.6.0
@clerk/backend: 3.2.8
Clerk JS observed in requests: _clerk_js_version=6.7.1
Frontend framework:
React Router 7.14.0
React 19.2.5
Reproduction shape
Custom flow:
User starts on a custom sign-in page
User clicks OAuth provider (for example Google)
This path can create a new account if the user does not already exist
Legal compliance is enabled in Clerk
After OAuth redirect, Clerk continues sign-up and lands on custom complete-sign-up
signUp.missingFields includes legal_accepted
The page calls signUp.update({ firstName?, lastName?, legalAccepted: true, unsafeMetadata })
Failed to execute 'json' on 'Response': Unexpected end of JSON input
Expected behavior
One of the following should work consistently:
signUp.update({ legalAccepted: true }) should be accepted during continued sign-up when missingFields includes legal_accepted
or the SDK/docs/types should clearly state that this path is unsupported and provide the supported pattern for SSO initiated from sign-in when legal compliance is enabled
Actual behavior
The continued sign-up path requires legal_accepted
The client update request for legal_accepted gets 405
The SDK then throws while parsing the non-JSON / empty response body
Additional mismatch noticed
The docs for the legacy JS SignIn.authenticateWithRedirect() mention legalAccepted and continueSignUp, but the current future API/types used by @clerk/react-router do not appear to expose those fields cleanly on signIn.sso() / SignInFutureSSOParams.
That makes it unclear what the intended supported flow is for:
starting OAuth from sign-in
allowing the flow to create a new user
requiring legal acceptance
Request
Can you confirm:
whether signUp.update({ legalAccepted: true }) is supposed to work in this continued sign-up path
whether this 405 is a bug/regression
what the recommended custom-flow pattern is for sign-in initiated SSO that may create a new user when legal compliance is enabled
If helpful, I can provide a minimal reproduction repo for React Router as well.
Activity