Dashboards freezing App and Website

  • Installation method Home Assistant OS
  • Core 2025.12.0
  • Supervisor 2025.12.2
  • Operating System 16.3
  • Frontend 20251203.0

I recently updated my RPi5 with HAOS to the latest version and now some dashboards cause the app & website to freeze, while others work fine. In the app, this makes everything unresponsive, including the menu and edit buttons. In the browser, if I open other dashboards using URL magic to bypass my default “Overview” dashboard (which freezes it) it works fine, except for one other customer view. Helpful info:

  • On the freezing dashboard, it will partially render GUI elements, and which elements show changes every time you re-open the freezing dashboard
  • HA Logs do not show any errors
  • I have no GUI-related things installed via HACS
  • I have no GUI-related integrations installed

Ready for the weird part? The browser debug console log used to show errors (which I copied), but now it’s not. It’s still freezing, and everything on the page (in every browser I’ve tried and the app) becomes unresponsive, but now it doesn’t show any console logs. Here are the errors it was showing before. I would appreciate any help. All my device APPs which open to the default “Overview” dashboard (which by the way is not disable-able) are held hostage by this.

themes-mixin.ts:74 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'recovery_mode')
    at w._applyTheme (themes-mixin.ts:74:26)
    at Array.t (themes-mixin.ts:64:14)
    at Object.r [as setState] (store.js:19:30)
    at collection.js:27:60
_applyTheme @ themes-mixin.ts:74
t @ themes-mixin.ts:64
r @ store.js:19
(anonymous) @ collection.js:27
Promise.then
f @ collection.js:27
l @ collection.js:29
(anonymous) @ collection.js:54
subscribe @ collection.js:99
l @ collection.js:125
(anonymous) @ ws-themes.ts:46
(anonymous) @ core.ts:124
Promise.then
(anonymous) @ core.ts:112
(anonymous) @ core.53e3d572a214d723.js:1
app.7d53804dafce64ba.js:60 The Material theme is deprecated and will be removed in Vaadin 25.
22698 @ version.js:22
c @ app.7d53804dafce64ba.js:60
29797 @ 34699.493a3c50bcb38ad4.js:4
c @ app.7d53804dafce64ba.js:60
8808 @ 34699.493a3c50bcb38ad4.js:7
c @ app.7d53804dafce64ba.js:60
(anonymous) @ 34699.493a3c50bcb38ad4.js:37
c.a @ async_module:58
10167 @ 34699.493a3c50bcb38ad4.js:37
c @ app.7d53804dafce64ba.js:60
(anonymous) @ 34699.493a3c50bcb38ad4.js:37
c.a @ async_module:58
83077 @ 34699.493a3c50bcb38ad4.js:37
c @ app.7d53804dafce64ba.js:60
(anonymous) @ 34699.493a3c50bcb38ad4.js:37
c.a @ async_module:58
67056 @ 34699.493a3c50bcb38ad4.js:37
c @ app.7d53804dafce64ba.js:60
(anonymous) @ 34699.493a3c50bcb38ad4.js:34
c.a @ async_module:58
99973 @ 34699.493a3c50bcb38ad4.js:34
c @ app.7d53804dafce64ba.js:60
Promise.then
firstUpdated @ more-info-mixin.ts:22
firstUpdated @ translations-mixin.ts:85
firstUpdated @ themes-mixin.ts:28
firstUpdated @ auth-mixin.ts:16
firstUpdated @ quick-bar-mixin.ts:32
firstUpdated @ home-assistant.ts:104
_$AE @ reactive-element.ts:1551
performUpdate @ reactive-element.ts:1518
t.performUpdate @ storage.ts:172
scheduleUpdate @ reactive-element.ts:1400
_$EP @ reactive-element.ts:1372
await in _$EP
requestUpdate @ reactive-element.ts:1311
_$Ev @ reactive-element.ts:1055
S @ reactive-element.ts:1038
i @ lit-element.ts:130
te @ hass-base-mixin.ts:6
(anonymous) @ context-mixin.ts:27
(anonymous) @ logging-mixin.ts:24
(anonymous) @ panel-title-mixin.ts:12
(anonymous) @ haptic-mixin.ts:38
(anonymous) @ url-sync-mixin.ts:18
(anonymous) @ dialog-manager-mixin.ts:28
(anonymous) @ notification-mixin.ts:5
(anonymous) @ connection-mixin.ts:41
(anonymous) @ disconnect-toast-mixin.ts:16
(anonymous) @ sidebar-mixin.ts:28
(anonymous) @ action-mixin.ts:16
(anonymous) @ automation-editor-mixin.ts:21
(anonymous) @ more-info-mixin.ts:16
(anonymous) @ state-display-mixin.ts:8
(anonymous) @ translations-mixin.ts:75
(anonymous) @ themes-mixin.ts:24
(anonymous) @ auth-mixin.ts:14
Te @ hass-element.ts:24
(anonymous) @ quick-bar-mixin.ts:30
w @ home-assistant.ts:53
P @ scoped-custom-element-registry.ts:642
t @ scoped-custom-element-registry.ts:408
A.define @ scoped-custom-element-registry.ts:243
(anonymous) @ custom-element.ts:60
s @ tslib.es6.mjs:58
(anonymous) @ app.7d53804dafce64ba.js:14
await in (anonymous)
c.a @ async_module:58
29627 @ app.7d53804dafce64ba.js:14
c @ app.7d53804dafce64ba.js:60
(anonymous) @ app.7d53804dafce64ba.js:14
c.a @ async_module:58
32494 @ app.7d53804dafce64ba.js:14
c @ app.7d53804dafce64ba.js:60
(anonymous) @ app.7d53804dafce64ba.js:60
log-message.ts:36  GET http://homeassistant.local:8123/unknown/node_modules/home-assistant-js-websocket/dist/store.js 404 (Not Found)
(anonymous) @ stacktrace-gps.js:37
i @ stacktrace-gps.js:23
(anonymous) @ stacktrace-gps.js:218
_get @ stacktrace-gps.js:195
(anonymous) @ stacktrace-gps.js:289
findFunctionName @ stacktrace-gps.js:287
(anonymous) @ stacktrace-gps.js:272
Promise.then
(anonymous) @ stacktrace-gps.js:267
pinpoint @ stacktrace-gps.js:266
(anonymous) @ stacktrace.js:113
(anonymous) @ stacktrace.js:108
(anonymous) @ stacktrace.js:107
fromError @ stacktrace.js:105
t @ log-message.ts:36
(anonymous) @ logging-mixin.ts:66
log-message.ts:36  GET http://homeassistant.local:8123/unknown/node_modules/home-assistant-js-websocket/dist/collection.js 404 (Not Found)
(anonymous) @ stacktrace-gps.js:37
i @ stacktrace-gps.js:23
(anonymous) @ stacktrace-gps.js:218
_get @ stacktrace-gps.js:195
(anonymous) @ stacktrace-gps.js:289
findFunctionName @ stacktrace-gps.js:287
(anonymous) @ stacktrace-gps.js:272
Promise.then
(anonymous) @ stacktrace-gps.js:267
pinpoint @ stacktrace-gps.js:266
(anonymous) @ stacktrace.js:113
(anonymous) @ stacktrace.js:108
(anonymous) @ stacktrace.js:107
fromError @ stacktrace.js:105
t @ log-message.ts:36
(anonymous) @ logging-mixin.ts:66

I would try restart in safe mode.

Thanks for the tip! It booted fine and fully operational in safe mode. Then I booted normal and disabled integrations one by one until I found the culprit. Turns out it’s the OpenSprinkler integration that’s causing the issues. Now to raise an issue over there…

Also it turns out that the OpenSprinkler integration is installed through HACS, and was several versions old. Updating it through there fixed the error, in case anyone else runs into this.