From 3dab4ffe0f3ce5e884f2f66d4e15cf230c4f5a84 Mon Sep 17 00:00:00 2001 From: Myron Blair Date: Sat, 20 Jun 2026 15:59:07 +0000 Subject: [PATCH] fix: show real error message on login 401, not misleading 'Session expired' Co-Authored-By: Claude Sonnet 4.6 Claude-Session: https://claude.ai/code/session_01LP9Q4kfCAYAjJnsbHBrViZ --- panel/assets/js/nova.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/panel/assets/js/nova.js b/panel/assets/js/nova.js index c3551bf..4728b66 100644 --- a/panel/assets/js/nova.js +++ b/panel/assets/js/nova.js @@ -56,7 +56,15 @@ window.Nova = (() => { return { success: false, message: 'Network error — check your connection' }; } _barDone(); - if (res.status === 401) { return { success: false, message: 'Session expired — please log in again' }; } + if (res.status === 401) { + const text401 = await res.text(); + try { + const j = JSON.parse(text401); + // Login failures return the real message; other 401s mean the session expired + if (endpoint === 'auth' && action === 'login') return j; + return { success: false, message: j.message || 'Session expired — please log in again' }; + } catch { return { success: false, message: 'Session expired — please log in again' }; } + } if (res.status === 429) { const reset = res.headers.get('X-RateLimit-Reset'); const wait = reset ? Math.max(0, Math.ceil(Number(reset) - Date.now() / 1000)) : 60;