From fd8dca2b7271e7d53dab9068549a30e56619b0ad Mon Sep 17 00:00:00 2001 From: ciregenz Date: Tue, 18 Aug 2026 14:25:12 -0700 Subject: [PATCH] [eric] models pill: poll while the no-model error shows; a router-side recovery emits no reachability edge so the pill stuck until reload (ENG-294 drill find) --- frontend/src/app/components/Layout/ModelErrorPill.tsx | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/frontend/src/app/components/Layout/ModelErrorPill.tsx b/frontend/src/app/components/Layout/ModelErrorPill.tsx index f2261411..f24a7d7a 100644 --- a/frontend/src/app/components/Layout/ModelErrorPill.tsx +++ b/frontend/src/app/components/Layout/ModelErrorPill.tsx @@ -71,6 +71,16 @@ const ModelErrorPill: React.FC = () => { }; }, [dispatch]); + // A router bounce restores models while the backend stays reachable, so no recovery event fires; poll gently while the error owns the corner. + useEffect(() => { + if (state !== 'no-model') return; + const t = setInterval(() => { + dispatch(fetchSettings()); + dispatch(fetchModels()); + }, 30000); + return () => clearInterval(t); + }, [state, dispatch]); + const clickable = state === 'no-model'; const title = state === 'offline' ? 'No internet connection'