onMounted awaited the initial REST calls before setting up the socket and the 6s polling fallback, so any rejected request aborted the handler and left the badge stuck on "connecting". Set up the socket and fallback first, make the initial loads best-effort, and log [ws] connect/open/close for debugging.