The change-password endpoint returns 401 for a wrong *current* password, the same status the global on401 hook uses to detect an expired session. The hook fired first and cleared session.user, so the account form's "still signed in?" guard always saw null and bounced the user to /login instead of surfacing the error inline. Add a per-call `suppressOn401` option to `request`; changePassword opts in, so a 401 there stays inline and the session is left intact. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
862 B
862 B