--- slug: user-settings-bugfix date: 2026-06-30 status: in-progress --- # User Settings Bug Fixes Fix two bugs found during Playwright verification of the account settings page. ## Bug 1: Stale password error message **Problem:** After a failed password submit (e.g. wrong current password), the error message stays visible while the user types new values. It only disappears on the next submit. **Fix:** Add `onChange` handlers to all three password inputs in `account-settings-form.tsx` that clear `pwError` and `pwMismatch` state when the user starts typing. **File:** `apps/web/src/components/settings/account-settings-form.tsx` ## Bug 2: Header avatar no live update **Problem:** After successful avatar upload, the avatar in the account settings form updates immediately, but the small header avatar (top-right) still shows the "A" initial until page reload. The header reads `user.hasAvatar` from the Zustand auth store, which is never updated after upload. **Fix:** 1. Add `avatarVersion: number` and `bumpAvatarVersion: () => void` to `auth-store.ts` 2. In `account-settings-form.tsx`: after successful upload, call `bumpAvatarVersion()` AND update `user.hasAvatar = true` in the store via `setUser` 3. In `header.tsx`: use `avatarVersion` from the store as a cache-busting query param on the avatar img src **Files:** - `apps/web/src/lib/stores/auth-store.ts` - `apps/web/src/components/settings/account-settings-form.tsx` - `apps/web/src/components/layout/header.tsx` ## Tasks - [ ] auth-store: add avatarVersion + bumpAvatarVersion - [ ] account-settings-form: clear errors on input change; call bumpAvatarVersion + update store hasAvatar on upload success - [ ] header: use avatarVersion as cache-busting param in avatar img src