I am running into something similar…
File "/usr/local/lib/python3.13/asyncio/base_events.py", line 550, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
2025-06-28 11:53:16.360 WARNING (MainThread) [homeassistant.util.executor] Thread[SyncWorker_59] is still running at shutdown: File "/usr/local/lib/python3.13/threading.py", line 1012, in _bootstrap
self._bootstrap_inner()
File "/usr/local/lib/python3.13/threading.py", line 1041, in _bootstrap_inner
self.run()
File "/usr/local/lib/python3.13/threading.py", line 992, in run
self._target(*self._args, **self._kwargs)
File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 90, in _worker
work_item = work_queue.get(block=True)
2025-06-28 11:53:16.361 ERROR (MainThread) [root] Uncaught exception
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/runner.py", line 154, in run
return loop.run_until_complete(setup_and_run_hass(runtime_config))
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/asyncio/base_events.py", line 706, in run_until_complete
self.run_forever()
~~~~~~~~~~~~~~~~^^
File "/usr/local/lib/python3.13/asyncio/base_events.py", line 677, in run_forever
self._run_once()
~~~~~~~~~~~~~~^^
File "/usr/local/lib/python3.13/asyncio/base_events.py", line 2007, in _run_once
handle = heapq.heappop(self._scheduled)
RuntimeError: list changed size during iteration
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "/usr/src/homeassistant/homeassistant/__main__.py", line 227, in <module>
sys.exit(main())
~~~~^^
File "/usr/src/homeassistant/homeassistant/__main__.py", line 213, in main
exit_code = runner.run(runtime_conf)
File "/usr/src/homeassistant/homeassistant/runner.py", line 162, in run
loop.close()
~~~~~~~~~~^^
File "/usr/local/lib/python3.13/asyncio/unix_events.py", line 70, in close
super().close()
~~~~~~~~~~~~~^^
File "/usr/local/lib/python3.13/asyncio/selector_events.py", line 105, in close
super().close()
~~~~~~~~~~~~~^^
File "/usr/local/lib/python3.13/asyncio/base_events.py", line 750, in close
executor.shutdown(wait=False)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/util/executor.py", line 77, in shutdown
self.join_threads_or_timeout()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/src/homeassistant/homeassistant/util/executor.py", line 92, in join_threads_or_timeout
remaining_threads -= join_or_interrupt_threads(
~~~~~~~~~~~~~~~~~~~~~~~~~^
remaining_threads,
^^^^^^^^^^^^^^^^^^
timeout_remaining / _JOIN_ATTEMPTS,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
attempt <= MAX_LOG_ATTEMPTS,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/src/homeassistant/homeassistant/util/executor.py", line 52, in join_or_interrupt_threads
_log_thread_running_at_shutdown(thread.name, thread.ident)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/util/executor.py", line 30, in _log_thread_running_at_shutdown
_LOGGER.warning(
~~~~~~~~~~~~~~~^
"Thread[%s] is still running at shutdown: %s",
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
name,
^^^^^
"".join(formatted_stack).strip(),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/local/lib/python3.13/logging/__init__.py", line 1531, in warning
self._log(WARNING, msg, args, **kwargs)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/logging/__init__.py", line 1664, in _log
self.handle(record)
~~~~~~~~~~~^^^^^^^^
File "/usr/local/lib/python3.13/logging/__init__.py", line 1680, in handle
self.callHandlers(record)
~~~~~~~~~~~~~~~~~^^^^^^^^
File "/usr/local/lib/python3.13/logging/__init__.py", line 1736, in callHandlers
hdlr.handle(record)
~~~~~~~~~~~^^^^^^^^
File "/usr/local/lib/python3.13/logging/__init__.py", line 1026, in handle
self.emit(record)
~~~~~~~~~^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/system_log/__init__.py", line 292, in emit
self.hass.bus.fire(EVENT_SYSTEM_LOG, entry.to_dict())
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 1501, in fire
self._hass.loop.call_soon_threadsafe(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self.async_fire_internal, event_type, event_data, origin, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/local/lib/python3.13/asyncio/base_events.py", line 872, in call_soon_threadsafe
self._check_closed()
~~~~~~~~~~~~~~~~~~^^
File "/usr/local/lib/python3.13/asyncio/base_events.py", line 550, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
I thought this was the role of the watchdog config in the supervisor to catch this and restart core ?