fix(auth): SMTP-Fehler wie Erfolg behandeln (Konten-Seitenkanal, F13) #47
No reviewers
Labels
No labels
epic/katalog
epic/konto
epic/partien
epic/querschnitt
epic/sammlung
needs-clarification
prio/could
prio/must
prio/should
size/l
size/m
size/s
size/xl
status/in-progress
status/ready-for-merge
status/spec-review
type/bug
type/epic
type/story
type/tech
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: cschlaefke/Shuffle#47
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/37-smtp-neutral"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Zusammenfassung
Schließt den App-seitigen Konten-Seitenkanal aus #37: Bei SMTP-Ausfall liefert GoTrue für bekannte und unbekannte Adressen unterschiedliche Status (Spike aus #38). Die App zeigte dafür ein Fehler-Banner und verriet damit ein Konto. Entscheidung F13 (Chris, 2026-11-03): neutrale Seite im Client. Bei
signUp,recoverundresendwirkt jede Antwort mit HTTP-Status >= 500 wie Erfolg („Prüfe dein Postfach“), identischer Text, keine Adresse, kein Banner.Closes #37
Spec:
docs/specs/1-auth-registrierung-anmeldung.md(F13, § 4.4, R17)Änderungen
auth_failure_mapper.dart: Status >= 500 beisignUp/requestPasswordReset/resend->unexpected; Fehler ohne Status bleibtnetwork.signInunberührt.resend_origin.dart: Positivlisten (Allowlist) für sichtbare Fehler. Sichtbar bleiben Eingabefehler (invalidEmail,weakPassword,registrationRejectedmit bekanntem Grund),networkundrateLimited(429). Alles andere ist neutral.unexpectedbleibt dort sichtbar („Erneut versuchen“), weil das Konto durch das richtige Passwort schon bewiesen ist und Neutralisieren nur einen echten SMTP-Ausfall verdeckt.emailSendLimitedzeigt dort weiter den Drosselungshinweis.docs/auth-konfiguration.md(Alarm auf SMTP-Fehler als Release-Blocker).Akzeptanz / Tests
AuthRetryableFetchException(500)aus Fake-Client ->unexpectedfürsignUp/resend/resetPasswordForEmail;signIn500/502/504 bleibtnetworkage_*/terms_*(krit02-03-validierung)dart format/flutter analyzeohne Befund, Playwrightapilokal 59 grünReview
code-reviewer: kein Blocker. Behoben (3805c71): Spec-Widerspruch zur Rolle der Trigger-Meldung,registrationRejectednur mit bekanntem Grund sichtbar, veraltete Doku, Integrationstest, Login-Resend (S4).Risiken / offen
networkund damit sichtbar. Spike und Timeout-Festlegung dort.🤖 Generated with Claude Code
Review- und CI-Ergebnis (Fix #37, F13)
CI (Commit
97222eb): alle 5 Jobs grün –flutter(1m13s),web-build(59s),supabase(3s),supabase-tests(31s),e2e(2m54s).Der erste Lauf (
3805c71) war im Jobflutterrot, weil nach Änderungen an Doc-Kommentaren die generierten Dateien nicht aktuell waren (CI-Prüfung „Generierte Dateien nicht aktuell“).build_runnerneu gefahren, nur Kommentare in drei generierten Dateien geändert (97222eb).Code-Review (Agent
code-reviewer): kein Blocker. Behoben in3805c71: Spec-Widerspruch zur Rolle der Trigger-Meldung,registrationRejectednur mit bekanntem Grund sichtbar, veraltete Doku/Kommentare, Integrationstest (AuthRetryableFetchException(500)bisunexpected), API-E2E-Tests für das Body-Format vonage_*/terms_*, Login-Resend (S4).Bitte bestätigen (Entscheidung des Orchestrators): Im Login-Resend bleibt ein SMTP-Fehler sichtbar („Erneut versuchen“), weil das Konto dort durch das richtige Passwort schon bewiesen ist. Neutral bleibt es bei „Passwort vergessen“, Registrierung und CheckEmail-Resend.
Offen:
Merge durch Chris. Mit dem Merge ist Issue #37 geschlossen.