I'm using esphome in docker, it's been great from the past year, but since December, with every update, the container restarts but shows 'no devices found'. If I then restart the container, the devices come back.
I'm not sure if this is an esphome issue or an issue with my docker manager/updater (Komodo). Anyone else seeing this issue?
System finds updated container, system recreates the container, no devices are shown (until a second container restart)
I'm not sure if this is captured close enough after an auto update
2026-01-07 16:49:15,301 INFO Starting dashboard web server on http://0.0.0.0:6052 and configuration dir /config...
2026-01-07 16:49:16,917 INFO 101 GET /events (192.168.1.30) 1.16ms
2026-01-07 16:49:16,921 INFO Started dashboard event loop
2026-01-07 16:49:43,996 INFO 200 GET /version (127.0.0.1) 1.08ms
2026-01-07 16:50:14,084 INFO 200 GET /version (127.0.0.1) 0.71ms
2026-01-07 16:50:44,172 INFO 200 GET /version (127.0.0.1) 0.73ms
2026-01-07 16:51:14,267 INFO 200 GET /version (127.0.0.1) 0.70ms
2026-01-07 16:51:17,318 INFO 200 GET /static/js/esphome/c.de9DXSiA.js (192.168.1.30) 3.19ms
2026-01-07 16:51:18,681 INFO 101 GET /update-all (192.168.1.30) 0.86ms
2026-01-07 16:51:18,702 INFO Running command 'esphome --dashboard update-all /config'
2026-01-07 16:51:44,372 INFO 200 GET /version (127.0.0.1) 0.43ms
2026-01-07 16:52:14,441 INFO 200 GET /version (127.0.0.1) 0.34ms
2026-01-07 16:52:44,484 INFO 200 GET /version (127.0.0.1) 0.28ms
2026-01-07 16:53:14,539 INFO 200 GET /version (127.0.0.1) 0.51ms
2026-01-07 16:53:44,642 INFO 200 GET /version (127.0.0.1) 0.71ms
2026-01-07 16:54:14,709 INFO 200 GET /version (127.0.0.1) 0.95ms
2026-01-07 16:54:44,763 INFO 200 GET /version (127.0.0.1) 0.31ms
2026-01-07 16:55:14,858 INFO 200 GET /version (127.0.0.1) 0.70ms
2026-01-07 16:55:44,902 INFO 200 GET /version (127.0.0.1) 0.43ms
2026-01-07 16:56:14,983 INFO 200 GET /version (127.0.0.1) 0.31ms
2026-01-07 16:56:45,075 INFO 200 GET /version (127.0.0.1) 0.51ms
2026-01-07 16:57:15,117 INFO 200 GET /version (127.0.0.1) 0.27ms
2026-01-07 16:57:45,211 INFO 200 GET /version (127.0.0.1) 0.68ms
2026-01-07 16:58:15,288 INFO 200 GET /version (127.0.0.1) 0.36ms
2026-01-07 16:58:45,334 INFO 200 GET /version (127.0.0.1) 0.28ms
2026-01-07 16:59:15,424 INFO 200 GET /version (127.0.0.1) 0.67ms
2026-01-07 16:59:45,523 INFO 200 GET /version (127.0.0.1) 0.46ms
2026-01-07 17:00:15,565 INFO 200 GET /version (127.0.0.1) 0.30ms
2026-01-07 17:00:45,661 INFO 200 GET /version (127.0.0.1) 0.40ms
2026-01-07 17:01:15,726 INFO 200 GET /version (127.0.0.1) 0.52ms
2026-01-07 17:01:45,830 INFO 200 GET /version (127.0.0.1) 0.74ms
2026-01-07 17:02:15,926 INFO 200 GET /version (127.0.0.1) 0.38ms
2026-01-07 17:02:45,968 INFO 200 GET /version (127.0.0.1) 0.26ms
2026-01-07 17:03:16,006 INFO 200 GET /version (127.0.0.1) 0.29ms
2026-01-07 17:03:18,721 ERROR Exception in callback functools.partial(<bound method IOLoop._discard_future_result of <tornado.platform.asyncio.AsyncIOMainLoop object at 0x77141e6eaf60>>, <Future finished exception=WebSocketClosedError()>)
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/tornado/ioloop.py", line 758, in _run_callback
ret = callback()
^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/tornado/ioloop.py", line 782, in _discard_future_result
future.result()
File "/usr/local/lib/python3.12/site-packages/tornado/gen.py", line 802, in run
yielded = self.gen.send(value)
^^^^^^^^^^^^^^^^^^^^
File "/esphome/esphome/dashboard/web_server.py", line 288, in _redirect_stdout
self.write_message({"event": "line", "data": text})
File "/usr/local/lib/python3.12/site-packages/tornado/websocket.py", line 360, in write_message
raise WebSocketClosedError()
tornado.websocket.WebSocketClosedError
2026-01-07 17:03:21,957 INFO Stopped dashboard event loop - no subscribers
2026-01-07 17:03:46,094 INFO 200 GET /version (127.0.0.1) 0.77ms
2026-01-07 17:04:16,181 INFO 200 GET /version (127.0.0.1) 0.67ms
2026-01-07 17:04:46,275 INFO 200 GET /version (127.0.0.1) 0.66ms
2026-01-07 17:05:16,359 INFO 200 GET /version (127.0.0.1) 0.69ms
2026-01-07 17:05:46,451 INFO 200 GET /version (127.0.0.1) 0.98ms
2026-01-07 17:06:16,546 INFO 200 GET /version (127.0.0.1) 0.68ms
2026-01-07 17:06:29,947 INFO 101 GET /events (192.168.1.30) 0.29ms
2026-01-07 17:06:29,948 INFO Started dashboard event loop
2026-01-07 17:06:46,632 INFO 200 GET /version (127.0.0.1) 0.72ms
2026-01-07 17:07:16,690 INFO 200 GET /version (127.0.0.1) 0.30ms
2026-01-07 17:07:28,699 INFO 101 GET /update-all (192.168.1.30) 0.77ms
2026-01-07 17:07:28,721 INFO Running command 'esphome --dashboard update-all /config'
2026-01-07 17:07:46,773 INFO 200 GET /version (127.0.0.1) 0.70ms
2026-01-07 17:08:16,811 INFO 200 GET /version (127.0.0.1) 0.28ms
2026-01-07 17:08:46,896 INFO 200 GET /version (127.0.0.1) 0.70ms
2026-01-07 17:09:16,993 INFO 200 GET /version (127.0.0.1) 0.70ms
2026-01-07 17:09:47,087 INFO 200 GET /version (127.0.0.1) 0.77ms
2026-01-07 17:10:17,174 INFO 200 GET /version (127.0.0.1) 0.67ms
2026-01-07 17:10:47,266 INFO 200 GET /version (127.0.0.1) 0.69ms
2026-01-07 17:11:17,353 INFO 200 GET /version (127.0.0.1) 0.70ms
2026-01-07 17:11:47,442 INFO 200 GET /version (127.0.0.1) 0.67ms
2026-01-07 17:12:17,537 INFO 200 GET /version (127.0.0.1) 0.42ms
2026-01-07 17:12:47,582 INFO 200 GET /version (127.0.0.1) 0.28ms
2026-01-07 17:13:17,639 INFO 200 GET /version (127.0.0.1) 0.28ms
2026-01-07 17:13:32,780 INFO 200 GET / (192.168.1.30) 5.46ms
2026-01-07 17:13:33,013 INFO 101 GET /events (192.168.1.30) 2.49ms
2026-01-07 17:13:47,712 INFO 200 GET /version (127.0.0.1) 0.36ms
2026-01-07 17:14:17,801 INFO 200 GET /version (127.0.0.1) 0.68ms
2026-01-07 17:14:25,143 INFO Process exited with return code 2
2026-01-07 17:14:47,888 INFO 200 GET /version (127.0.0.1) 0.70ms
2026-01-07 17:15:17,981 INFO 200 GET /version (127.0.0.1) 0.69ms
2026-01-07 17:15:48,066 INFO 200 GET /version (127.0.0.1) 0.74ms
2026-01-07 17:16:18,156 INFO 200 GET /version (127.0.0.1) 0.67ms
2026-01-07 17:16:25,657 INFO 200 GET /static/js/esphome/c.DNcqQXn0.js (192.168.1.30) 3.39ms
2026-01-07 17:16:25,660 INFO 200 GET /static/js/esphome/c.D8wUDrsi.js (192.168.1.30) 5.15ms
2026-01-07 17:16:25,662 INFO 200 GET /static/js/esphome/c.BD-J2WFT.js (192.168.1.30) 1.24ms
2026-01-07 17:16:25,734 INFO 200 GET /info?configuration=cc4c.yaml (192.168.1.30) 1.82ms
2026-01-07 17:16:27,936 INFO 200 GET /static/js/esphome/c.B-EHIPmf.js (192.168.1.30) 8.36ms
2026-01-07 17:16:28,055 INFO 101 GET /run (192.168.1.30) 0.82ms
2026-01-07 17:16:28,072 INFO Running command 'esphome --dashboard run /config/cc4c.yaml --device OTA'
2026-01-07 17:16:30,859 INFO 200 GET / (192.168.1.30) 1.03ms
2026-01-07 17:16:31,582 INFO 101 GET /events (192.168.1.30) 0.78ms
2026-01-07 17:16:37,707 INFO 200 GET /info?configuration=d8e0.yaml (192.168.1.30) 1.40ms
2026-01-07 17:16:38,628 INFO 101 GET /run (192.168.1.30) 0.84ms
2026-01-07 17:16:38,644 INFO Running command 'esphome --dashboard run /config/d8e0.yaml --device OTA'
2026-01-07 17:16:48,243 INFO 200 GET /version (127.0.0.1) 0.77ms
2026-01-07 17:16:55,778 INFO Process exited with return code 1
2026-01-07 17:17:18,338 INFO 200 GET /version (127.0.0.1) 0.73ms
2026-01-07 17:17:38,560 INFO 200 GET /edit?configuration=cc4c.yaml (192.168.1.30) 1.78ms
2026-01-07 17:17:38,604 INFO 200 GET /static/js/esphome/monaco-editor/esm/vs/editor/editor.worker.js (192.168.1.30) 3.74ms
2026-01-07 17:17:38,639 INFO 101 GET /ace (192.168.1.30) 0.81ms
2026-01-07 17:17:38,660 INFO Running command 'esphome --dashboard -q vscode --ace /config'
2026-01-07 17:17:38,912 INFO 200 GET /static/fonts/codicon.ttf (192.168.1.30) 1.68ms
2026-01-07 17:17:47,567 INFO 200 POST /edit?configuration=cc4c.yaml (192.168.1.30) 4.44ms
2026-01-07 17:17:47,606 INFO 304 GET /info?configuration=cc4c.yaml (192.168.1.30) 1.17ms
2026-01-07 17:17:48,432 INFO 200 GET /version (127.0.0.1) 0.68ms
2026-01-07 17:17:48,721 INFO 101 GET /run (192.168.1.30) 0.78ms
2026-01-07 17:17:48,743 INFO Running command 'esphome --dashboard run /config/cc4c.yaml --device OTA'
2026-01-07 17:17:51,555 INFO 200 GET /edit?configuration=d8e0.yaml (192.168.1.30) 1.46ms
2026-01-07 17:17:51,652 INFO 101 GET /ace (192.168.1.30) 0.29ms
2026-01-07 17:17:51,693 INFO Running command 'esphome --dashboard -q vscode --ace /config'
2026-01-07 17:18:18,523 INFO 200 GET /version (127.0.0.1) 0.70ms
2026-01-07 17:18:48,615 INFO 200 GET /version (127.0.0.1) 0.68ms
2026-01-07 17:19:18,703 INFO 200 GET /version (127.0.0.1) 0.72ms
2026-01-07 17:19:48,797 INFO 200 GET /version (127.0.0.1) 0.72ms
2026-01-07 17:20:18,883 INFO 200 GET /version (127.0.0.1) 0.73ms
2026-01-07 17:20:48,970 INFO 200 GET /version (127.0.0.1) 0.81ms
2026-01-07 17:21:19,056 INFO 200 GET /version (127.0.0.1) 0.68ms
2026-01-07 17:21:49,143 INFO 200 GET /version (127.0.0.1) 0.70ms
2026-01-07 17:22:19,236 INFO 200 GET /version (127.0.0.1) 1.47ms
2026-01-07 17:22:49,323 INFO 200 GET /version (127.0.0.1) 0.75ms
2026-01-07 17:23:19,411 INFO 200 GET /version (127.0.0.1) 0.71ms
2026-01-07 17:23:49,511 INFO 200 GET /version (127.0.0.1) 0.92ms
2026-01-07 17:24:19,599 INFO 200 GET /version (127.0.0.1) 0.69ms
2026-01-07 17:24:49,146 INFO Stopped dashboard event loop - no subscribers
2026-01-07 17:24:49,689 INFO 200 GET /version (127.0.0.1) 1.07ms
2026-01-07 17:25:19,776 INFO 200 GET /version (127.0.0.1) 0.70ms
2026-01-07 17:25:49,862 INFO 200 GET /version (127.0.0.1) 0.73ms
2026-01-07 17:26:19,955 INFO 200 GET /version (127.0.0.1) 0.69ms
Version
2025.12.5
What type of installation are you using?
Docker
Browser
Safari
What happened?
I'm using esphome in docker, it's been great from the past year, but since December, with every update, the container restarts but shows 'no devices found'. If I then restart the container, the devices come back.
I'm not sure if this is an esphome issue or an issue with my docker manager/updater (Komodo). Anyone else seeing this issue?
How to reproduce
System finds updated container, system recreates the container, no devices are shown (until a second container restart)
Expected behavior
Devices to be shown
Relevant log output
Screenshots