Skip to content

Docker 29 + containerd 2.1: supervisor.docker.monitor crashes with KeyError: 'id', all add-ons fail to start (time out) #6316

@giof94is

Description

@giof94is

Describe the issue you are experiencing

Right after upgrading Docker / containerd via apt full-upgrade and rebooting the host:

Supervisor starts

Home Assistant Core eventually starts

But all add-ons that Supervisor tries to start time out with:

WARNING [supervisor.addons.addon] is already running!

WARNING [supervisor.addons.addon] Timeout while waiting for addon to start, took more than 120 seconds

ERROR [supervisor.resolution.fixups.addon_execute_start] Addon could not start successfully

At the same time, the Supervisor’s Docker events monitor crashes with:
Exception in thread Thread-2:
Traceback (most recent call last):
File "/usr/local/lib/python3.13/threading.py", line 1043, in _bootstrap_inner
self.run()
File "/usr/src/supervisor/supervisor/docker/monitor.py", line 92, in run
id=event["id"],
~~~~~^^^^^^
KeyError: 'id'

So it looks like Docker 29 / containerd 2.1 are emitting at least one event without an id field and supervisor.docker.monitor doesn’t handle that case, causing the monitor thread to die.

From that moment on, Supervisor seems blind to container lifecycle events: it tries to start add-ons, logs that they are “already running”, but then always times out and marks them as failed to start.

What type of installation are you running?

Home Assistant Supervised

Which operating system are you running on?

Debian

Steps to reproduce the issue

1.upgrades

docker-ce / docker-ce-cli / docker-ce-rootless-extras to 5:29.0.1-1

docker-buildx-plugin to 0.30.0-1

containerd.io to 2.1.5-1

...

Anything in the Supervisor logs that might be useful for us?

2025-11-16 14:21:18.226 INFO (MainThread) [supervisor.docker.supervisor] Attaching to Supervisor ghcr.io/home-assistant/aarch64-hassio-supervisor with version 2025.11.2
...
2025-11-16 14:21:35.314 INFO (MainThread) [supervisor.docker.monitor] Started docker events monitor
...
Exception in thread Thread-2:
Traceback (most recent call last):
  File "/usr/local/lib/python3.13/threading.py", line 1043, in _bootstrap_inner
    self.run()
  File "/usr/src/supervisor/supervisor/docker/monitor.py", line 92, in run
    id=event["id"],
       ~~~~~^^^^^^
KeyError: 'id'

System information

docker-ce / docker-ce-cli / docker-ce-rootless-extras to 5:29.0.1-1

docker-buildx-plugin to 0.30.0-1

containerd.io to 2.1.5-1

Supervisor diagnostics

No response

Additional information

To get back to a working system, I did a manual downgrade of Docker and containerd to their previous versions and then pinned them:

sudo apt-get install
docker-ce=5:28.5.2-1debian.11bullseye
docker-ce-cli=5:28.5.2-1debian.11bullseye
docker-ce-rootless-extras=5:28.5.2-1debian.11bullseye
docker-buildx-plugin=0.29.1-1debian.11bullseye
containerd.io=1.7.28-2debian.11bullseye

sudo apt-mark hold docker-ce docker-ce-cli docker-ce-rootless-extras docker-buildx-plugin containerd.io
sudo reboot

After the downgrade:

Supervisor no longer crashes in supervisor.docker.monitor,

Add-ons start normally again
The system is back to the previous healthy state.

This strongly suggests that the breakage is caused by a change in the Docker / containerd event stream or API between:

Docker 28.5.2 + containerd 1.7.28 (OK)

Docker 29.0.1 + containerd 2.1.5 (broken)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions