AOSSIE-Org / AOSSIE-Org/DebateAI

[BUG]: Reset password form shows generic "Password update failed" instead of the backend's specific error (e.g. expired code)

Offen
#504 0 Kommentare 0 Reaktionen 1 zugewiesene Person Beansprucht von @RounakKumarAgarwal Auf GitHub ansehen
bug
Vorherrschende Sprache
TypeScript
Sterne
84
Forks
198
Ø Merge
2 T. 19 Std.
Gemergte PRs (30 T.)
30

Beschreibung

### Bug Description

On the Reset Password form, when the backend rejects a reset attempt (e.g. an expired or invalid reset code), the form always shows the generic message **"Password update failed"** instead of the specific reason the backend returned (e.g. "Reset code has expired. Please request a new one.").

**Root cause** — field-name mismatch in `frontend/src/context/authContext.tsx` (`confirmForgotPassword`, line ~294):
```js
if (!response.ok) {
const data = await response.json();
throw new Error(data.message || 'Password update failed');
}
```
The backend returns its error under the `error` field (e.g. `{"error": "Reset code has expired. Please request a new one."}`), but the frontend reads `data.message`. Since `message` is absent, it always falls back to the generic string.

**Fix:** read `data.error` (with a sensible fallback), e.g.:
```js
throw new Error(data.error || data.message || 'Password update failed');
```

This is the same class of issue as #470 (auth errors not surfaced due to inconsistent response fields), scoped here to the reset-password flow.

cc @Ri1tik — could you assign this to me? I'm already working on the related reset-code expiry fix (#485), and the backend there returns a clear "Reset code has expired" message that this frontend change would surface properly.

### Steps to Reproduce

1. Trigger a reset failure — e.g. request a password reset code, then submit it after it's invalid/expired (or enter a wrong code).
2. The backend responds with 400 and `{"error": ""}`.
3. Observe the form displays "Password update failed" instead of the specific reason from the backend.

### Logs and Screenshots

frontend/src/context/authContext.tsx (~line 294):
throw new Error(data.message || 'Password update failed');
// backend sends { "error": "..." }, not { "message": "..." } → always falls back

Image

### Environment Details

- File: frontend/src/context/authContext.tsx (confirmForgotPassword, ~line 294)
- Page: Reset Password form (/auth)
- Frontend: Vite + React
- Branch: main
- Related: #470 (same class — inconsistent response field); surfaces alongside #485 (reset-code expiry)

### Impact

Low - Minor inconvenience

### Code of Conduct

- [x] I have joined the [Discord server](https://discord.gg/hjUhu33uAn) and will post updates there
- [x] I have searched existing issues to avoid duplicates

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.