Dashboard causes home assistant to crash

i don’t know why but since yesterday every time i load this dashboard home assistant freezes and the “lost connnection” message appears
the only way i have to make it work again is to reboot the host by cutting power to it
i’m not aware of any changes that could cause this issue and i have been using this dashboard for years without issue
any ideas?

i will attach the dashboard file with google drive since i can’t arrive to the yaml confing before it crashes and the code is too long for this site body message liimitation
dashboard

edit:
i manage to copy the yaml config before crash

type: custom:vertical-stack-in-card
cards:
  - type: custom:layout-card
    layout_type: custom:grid-layout
    cards:
      - type: conditional
        conditions: []
        card:
          type: custom:mushroom-template-card
          entity: binary_sensor.deskchair_occupancy
          content_info: none
          icon_color: "{{ 'green' if states(entity) == 'on' else 'red'}}"
          icon: mdi:seat
          card_mod:
            style: |
              ha-card {
              background: none;
              box-shadow: none;
              border-width: 0
              }
              mushroom-shape-icon {
                --shape-color: transparent !important;
                --shape-color-disabled: transparent !important;
              }
      - type: custom:mushroom-title-card
        title: |-
          {% set time = now().hour %}
          {% if (time >= 18) %}
          Buonasera, Shiroe!
          {% elif (time >= 12) %}
          Bentrovato, Shiroe!
          {% elif (time >= 5) %}
          Buongiorno, Shiroe!
          {% else %}
          Buona nottata, Shiroe!
          {% endif %}
        alignment: end
        title_tap_action:
          action: navigate
          navigation_path: "#spedizioni"
        card_mod:
          style: |
            ha-card {
              title-font-size: 3rem !important;
              }
      - type: conditional
        conditions: []
        card:
          type: custom:mushroom-entity-card
          entity: switch.desk_panel_schermo
          secondary_info: none
          primary_info: none
          tap_action:
            action: none
          hold_action:
            action: none
          double_tap_action:
            action: none
          icon: mdi:tablet-dashboard
          icon_color: white
          card_mod:
            style: |
              ha-card {
              background: none;
              box-shadow: none;
              border-width: 0
              }
              mushroom-shape-icon {
                --shape-color: transparent !important;
                --shape-color-disabled: transparent !important;
                 }
      - type: conditional
        conditions: []
        card:
          type: custom:simple-date-time-clock-card
          date_locale: it
          time_font_size: 2rem
          date_font_size: 1.5rem
          date_months_lead_zero: true
          date_separator_char: /
          date_year_two_digit: true
          card_mod:
            style: |
              ha-card {
              background: none;
              box-shadow: none;
              border-width: 0
              }
      - type: conditional
        conditions:
          - condition: state
            entity: switch.desk_panel_power
            state_not: unavailable
        card:
          type: custom:mushroom-template-card
          card_mod:
            style: |
              ha-card {
              background: none;
              box-shadow: none;
              border-width: 0
              }
              mushroom-shape-icon {
                --shape-color: transparent !important;
                --shape-color-disabled: transparent !important;
              }
          entity: binary_sensor.desk_panel_connesso
          content_info: none
          icon_color: "{{ 'green' if states(entity) == 'on' else 'red'}}"
          icon: |
            {% set state=states(entity) %}
            {% if state=='off' %}
            mdi:battery-arrow-down-outline
            {% elif state=='on' %}
            mdi:battery-arrow-up
            {% endif %}
      - type: conditional
        conditions:
          - condition: state
            entity: switch.desk_panel_power
            state: unavailable
        card:
          type: custom:mushroom-template-card
          card_mod:
            style: |
              ha-card {
              background: none;
              box-shadow: none;
              border-width: 0
              }
          entity: switch.desk_panel_power
          content_info: none
          icon_color: yellow
          icon: mdi:battery-charging-wireless-alert
    layout:
      grid-template-columns: 7% 55% 4% 28% 5%
      margin: "-4px"
      grid-template-areas: |
        “left right”

I experience exactly the same issue. Up to th level, that today my HA crashed and restarted on it own in the first time since 5+ years.
I was putting this on some heavy template development (reading and manipulating +2MB JSON file with ~6500 nodes), as this is the time I observed it for the first time. While playing with this template (it is dynamic, using states of helpers to filter data) I noticed that refreshing output takes minutes, but I was inclining to believe that that was due to additional functionality I put into it. Then HA crashed and after that HA, including questionable template, become snappy again. So had to be something different.
BTW. just checked situation and seems I back into slowness… I can see that while playing with this template I get huge CPU spikes, up to 50% vs normal consumption of below 5%. There is only one dashboard that utilises this template, but seems that all other dashboards responsiveness is affected by processing of this template.
I’ll try to revert changes I did and see if it helps.

EDIT: checked logs and there are some errors, that could be related to this problem:

2025-06-01 20:37:30.489 WARNING (MainThread) [hass_nabucasa.iot] Connection closed: Cannot write to closing transport
2025-06-01 20:38:00.701 ERROR (SyncWorker_6) [homeassistant] Error doing job: Task exception was never retrieved (None)
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/netatmo/__init__.py", line 157, in register_webhook
    webhook_register(
    ~~~~~~~~~~~~~~~~^
        hass,
        ^^^^^
    ...<3 lines>...
        async_handle_webhook,
        ^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/src/homeassistant/homeassistant/components/webhook/__init__.py", line 54, in async_register
    raise ValueError("Handler is already defined!")
ValueError: Handler is already defined!
2025-06-01 20:44:59.701 WARNING (MainThread) [hass_nabucasa.iot] Connection closed: Cannot write to closing transport
2025-06-01 20:45:31.013 ERROR (Recorder) [homeassistant] Error doing job: Task exception was never retrieved (None)
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/netatmo/__init__.py", line 157, in register_webhook
    webhook_register(
    ~~~~~~~~~~~~~~~~^
        hass,
        ^^^^^
    ...<3 lines>...
        async_handle_webhook,
        ^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/src/homeassistant/homeassistant/components/webhook/__init__.py", line 54, in async_register
    raise ValueError("Handler is already defined!")
ValueError: Handler is already defined!

if i read your error log correctly it refers to the netatmo component but this is an integration that i don’t use so i don’t this is relevant

I do not use Netatmo, but from my memory I feel I have seen a lot of issues with that integration lately.

For me, Studio Code Server (using the addon) is causing trouble eating all memory. Using Studio Code though Nabu Casa ends up freezing, working locally does not freeze until memory is gone. Studio Code eats memory it does not return. The problem is worse with larger files. Reloading it releases the memory. So if you’ve been editing templates using it, that my have starved HA of memory and/or CPU, which starts to spike if memory gets low.

Furthermore, Since a couple of days, when I open HA on the iPad after it has been idle for a while, it shows connection lost. Simply pulling down to refresh fixes it. This isn’t actually HA being unresponsive. Others have reported similar issues since a week or so.

no i’m not using studio code for anything and i’m not using an ipad
this dashboard causes the issue on every device i’ve tried it on (since a couple of days but not previously)
i’ve tried
firefox
HA on android
fully kiosk
as soon as i open this dashboard be it in edit mode or view mode the system becomes unresponsive and the power consumpions doubles (from 20w to 40w) and the only way i have to recover it is to unplug the power and force a restart

Reboot when the freeze happens and then open up the homeassistant.log.1 file in your config folder in a text editor/reader.

This file contains your log from the previous run up to the freeze happened.

here thanks in advance for any help
log

You have a lot of errors around webos, and apparently also have an automation to reload it. I might be misinterpreting the log, but to me it seems like the automation may be triggering WAY too often for its apparent intended purpose. Maybe try disabling the automation, at least temporarily for troubleshooting?

it’s not triggering is simply cheching if it stopped working every x second and if not it runs (it’s like a ping) i can disable it but i don’t think it is relevant

that’s the automation in question:

alias: webos integration reload
description: ""
triggers:
  - event_type: system_log_event
    trigger: event
conditions: []
actions:
  - choose:
      - conditions:
          - condition: template
            value_template: >-
              {{ "Update of media_player.tv is taking over 10 seconds" in
              trigger.event.data.message[0] }}
        sequence:
          - action: persistent_notification.create
            metadata: {}
            data:
              message: "l'integrazione LG WebOS TV sta venendo ricaricata a causa di TV "
              title: l'integrazione WebOS TV sta avendo un problema
          - action: homeassistant.reload_config_entry
            metadata: {}
            data:
              entry_id: f9d7113b3a224765b0c8390ac91b3cfc
      - conditions:
          - condition: template
            value_template: >-
              {{ "Update of media_player.monitor is taking over 10 seconds" in
              trigger.event.data.message[0] }}
        sequence:
          - action: persistent_notification.create
            metadata: {}
            data:
              message: >-
                l'integrazione LG WebOS TV sta venendo ricaricata a causa di
                Monitor
              title: l'integrazione WebOS TV sta avendo un problema
          - action: homeassistant.reload_config_entry
            metadata: {}
            data:
              entry_id: 008f99e4524b3eb64c3c05a5c480e67a
mode: single

It might not be the cause, but the noise from it is certainly something. Look at the time stamps of your logs…you’ve got a 41MB log that only covers about 2 minutes, and has hundreds of the same related sets of errors repeated over and over. It appears to be triggering on every system log event and then erroring in its choose condition, which I think may be causing another system log event, causing another error, causing another system log event…

i have disabled the automation so i could give you a cleaner log but now it works again perfectly
i really do not understand what’s happened to solve the issue

My bad, I quickly grabbed log from around the time I observed problem, did not noticed Netatmo. But:

  • it means that this issue does not generate any errors
  • I checked HA VM statistics around the time of failure and while I can see spike in CPU consumption, memory cosumption stays flat, not showing any symtoms of leak…

The things that baffles me is that it crashed my entire system multiple times for almost 2 days and now it works again with no intervention on my part
I’ve no problem with investigating an issue when one arises but if it comes and disappears without cause it irritates me a lot
especially if i asked for help and involved other people for nothing
In any case thanks to everyone that offered help