An MQTT entity in Home Assistant can only belong to a device if it has a unique_id. Until now, Home Assistant still read the device block of entities that had none, and that had one visible side effect. Pull request #187856, merged into the development branch on 22 October 2026 and marked as a breaking change, stops that. It is due in Home Assistant 2026.11.
What changes
From 2026.11, the device configuration of an MQTT entity without a unique_id is ignored. This applies to entities defined in YAML and to entities created through MQTT discovery, including later discovery updates.
The entity itself keeps working. What disappears is the leftover effect of its device block: if that block contained via_device, Home Assistant created a device in the device registry for it, even though the entity could never be linked to any device. That unused device will no longer be created.
Home Assistant already warned about this situation. Its entity platform logged that MQTT was trying to attach a device to an entity without a unique ID, and that this would stop working in 2027.8. The MQTT integration now drops the device data itself, ahead of that deadline.
Who needs to do something
Check any MQTT entity you wrote by hand in YAML with a device: section but no unique_id:. The same goes for discovery payloads from your own scripts or firmware, where the dev or device object sits next to a missing uniq_id. Ready-made bridges such as Zigbee2MQTT normally send a unique ID with each entity, so they are not the usual suspect here, but home-grown publishers often skip it.
If you want such an entity to appear under a device, add a unique ID:
mqtt:
sensor:
- name: "Garage temperature"
state_topic: "garage/temp"
unique_id: garage_temperature
device:
identifiers: ["garage_node"]
name: "Garage node"
Without unique_id, Home Assistant still shows the sensor, but it will not be listed under "Garage node", and that device will not be created just because of it.
Part of a larger MQTT change
The pull request was split off from #186015, which adds support for MQTT child devices and is still open. Two MQTT fixes were merged around the same time: one corrects invalid discovery updates for device triggers and tags, and the other handles device registration errors for device triggers and tags.