[@clerk/react-router] sign-in initiated SSO with legal compliance enabled fails on complete-sign-up when signUp.update({ legalAccepted: true }) is called
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 52/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Ruhig
- Tech-Stack
- react, typescript
- Bereich
- api, authentication
Rechercherichtung
Beginne mit dem von /sign-up/complete/future verwendeten @clerk/react-router-Sign-up-Fortsetzungsablauf und vergleiche signUp.update(...) mit clerk.client.signUp.update(...) im Legacy-Ablauf. Verwende die verknüpfte Live-Reproduktion mit aktivierter rechtlicher Compliance und überprüfe, dass der zukünftige Ablauf eine ID-spezifische Sign-up-Anfrage sendet und erfolgreich mit legalAccepted: true abgeschlossen wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Preliminary Checks
- I have reviewed the documentation: https://clerk.com/docs
- I have searched for existing issues: https://github.com/clerk/javascript/issues
- I have not already reached out to Clerk support via email or Discord (if you have, no need to open an issue here)
- This issue is not a question, general help request, or anything other than a bug report directly related to Clerk. Please ask questions in our Discord community: https://clerk.com/discord.
Reproduction
Live repro: https://clerk-react-router-legal-repro.vercel.app/
Repository: https://github.com/pplytas/clerk-react-router-legal-repro
Publishable key
pk_test_ZHJpdmVuLW1vbmtmaXNoLTU3LmNsZXJrLmFjY291bnRzLmRldiQ
Description
Steps to reproduce:
- Enable Google SSO and legal compliance in Clerk for the publishable key above.
- Open the live repro.
- Go to
/sign-in. - Click
Continue with Google (future). - Use a Google account that does not already exist in this Clerk instance.
- After the OAuth callback, Clerk transfers the attempt into sign-up and routes to
/sign-up/complete/future. - Fill in first name and last name, check the legal acceptance checkbox, and submit.
- Observe that the request made by
signUp.update(...)targets the client sign-up collection endpoint without a sign-up ID and fails with405 Method Not Allowed.
The repro now also includes a control flow:
- Repeat the same steps with
Continue with Google (legacy), which routes to/sign-up/complete/legacy. - That page uses
clerk.client.signUp.update(...)instead ofsignUp.update(...), so the repro exposes both the new and legacy update paths side-by-side.
Expected behavior:
The continued sign-up flow should accept legalAccepted: true and proceed normally.
More specifically, signUp.update(...) in the custom sign-up continuation flow should update the current sign-up attempt using an ID-aware sign-up endpoint, not the collection endpoint.
Actual behavior:
On the future flow, the request sent by signUp.update(...) does not include a sign-up ID in the path. It hits the collection endpoint shape instead:
PATCH /v1/client/sign_ups?...&_method=PATCH
instead of an ID-specific endpoint shape:
PATCH /v1/client/sign_ups/{sign_up_id}
The result is:
405 Method Not Allowed
and the browser UI then throws:
Failed to execute 'json' on 'Response': Unexpected end of JSON input
The repro now isolates this to the new sign-up completion path by exposing two flows:
future: usessignUp.update(...)legacy: usesclerk.client.signUp.update(...)
The issue is specifically on the future flow. The legacy flow is included as a control for direct comparison.
Environment
System:
OS: macOS 26.3.1
CPU: (8) arm64 Apple M3
Memory: 5.64 GB / 24.00 GB
Shell: 5.9 - /bin/zsh
Binaries:
Node: 24.14.1 - /opt/homebrew/bin/node
npm: 11.11.0 - /opt/homebrew/bin/npm
pnpm: 10.25.0 - /opt/homebrew/bin/pnpm
Watchman: 2026.03.30.00 - /opt/homebrew/bin/watchman
Browsers:
Chrome: 147.0.7727.56
Firefox: 149.0
Safari: 26.3.1
npmPackages:
@clerk/react-router: ^3.1.2 => 3.1.2
@react-router/dev: 7.14.0 => 7.14.0
@react-router/node: 7.14.0 => 7.14.0
@react-router/serve: 7.14.0 => 7.14.0
react: ^19.2.4 => 19.2.5
react-dom: ^19.2.4 => 19.2.5
react-router: 7.14.0 => 7.14.0
- Vorherrschende Sprache
- TypeScript
- Sterne
- 1.8k
- Forks
- 472
- Ø Merge
- 2 T. 12 Std.
- Gemergte PRs (30 T.)
- 222
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus clerk/javascript
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
clerk/javascript#9611 · 1 Kommentar ·
-
clerk/javascript#9891 · 1 zugewiesene Person ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 64/100
clerk/javascript#9775 · 1 Kommentar ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
clerk/javascript#9770 · 3 Kommentare ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 68/100
clerk/javascript#9667 · 1 Kommentar ·
Alle Issues in clerk/javascript
Ähnliche Issues
-
bug(cli): hapi doctor inline-media prints a fabricated B:\ helper-script path in packaged installs Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
-
Crush Offen
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
catppuccin/catppuccin#3125 ·
-
Add a SECURITY.md Offen
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
ElementsProject/cln-application#167 · 1 Kommentar · 1 Reaktion ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
Quantco/pnpm-licenses#17 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100