Found while commissioning a Homebridge Matter child bridge on jarvis (2026-08-02/03), after #103 made test-certificate devices commissionable.
What happened
The bridge commissioned successfully into the Indigo fabric as node @1:35 — Attestation accepted, no errors. But no Indigo devices were created, and get_devices_by_type shows none belonging to it.
The reason is visible in matter-server's log — the node exposes exactly one endpoint and it has no children:
20:54:56 server-1-fff1.@1:35.ep1 ready endpoint#: 1 type: Aggregator (0x0e, rev 2) behaviors: ✓descriptor
20:55:01 Sending endpoint_added event for Node @1:35 endpoint 1
An Aggregator carries no device clusters, so _spec_for_endpoint correctly returns None for it, and there are no bridged child endpoints to build devices from. The plugin behaved correctly; the bridge was publishing an empty aggregator (the Homebridge plugin apparently couldn't map its one accessory to a Matter device type).
Why this is worth an issue
-
The bridged-endpoint path has never been exercised against a real bridge. The support exists — device_sync.py makes one device per endpoint, matter_model.py:139 _bridge_identity() reads BridgedDeviceBasicInformation (0x0039) for per-endpoint name/vendor/product, and protocol.py:89 handles dynamic endpoint_added/endpoint_removed. But it is unit-tested only. We should validate against a bridge that actually publishes children (a Hue bridge, or a Matterbridge instance with real accessories) before claiming bridge support.
-
Commissioning an empty bridge is silently useless. It reports success and creates nothing. A device-bearing node with no usable endpoints already gets the matterUnknown placeholder treatment; an aggregator with an empty parts list gets nothing at all and no explanation. Suggest an INFO/WARNING when a commissioned node's only endpoint is an Aggregator with no children — "this bridge is not currently exposing any devices over Matter; check its own configuration" — so the user isn't left wondering.
-
Housekeeping: node @1:35 is still in the fabric as a live pairing that can never produce devices. It should be decommissioned (Plugins ▸ Matter ▸ Decommission Matter device…). Related: matter-server's storage showed orphan session-resumption records for @1:30 and @1:33 — node IDs no longer in the node list — which is what accumulates when partial/abandoned commissioning isn't cleaned up.
Environment
matter-server 1.2.2, plugin 2026.7.10, Homebridge child bridges advertising on ports 5530 (HomeConnect) and 5531 (Homebridge iCloud).
🤖 Generated with Claude Code
Found while commissioning a Homebridge Matter child bridge on jarvis (2026-08-02/03), after #103 made test-certificate devices commissionable.
What happened
The bridge commissioned successfully into the Indigo fabric as node
@1:35—Attestation accepted, no errors. But no Indigo devices were created, andget_devices_by_typeshows none belonging to it.The reason is visible in matter-server's log — the node exposes exactly one endpoint and it has no children:
An Aggregator carries no device clusters, so
_spec_for_endpointcorrectly returnsNonefor it, and there are no bridged child endpoints to build devices from. The plugin behaved correctly; the bridge was publishing an empty aggregator (the Homebridge plugin apparently couldn't map its one accessory to a Matter device type).Why this is worth an issue
The bridged-endpoint path has never been exercised against a real bridge. The support exists —
device_sync.pymakes one device per endpoint,matter_model.py:139_bridge_identity()readsBridgedDeviceBasicInformation(0x0039) for per-endpoint name/vendor/product, andprotocol.py:89handles dynamicendpoint_added/endpoint_removed. But it is unit-tested only. We should validate against a bridge that actually publishes children (a Hue bridge, or a Matterbridge instance with real accessories) before claiming bridge support.Commissioning an empty bridge is silently useless. It reports success and creates nothing. A device-bearing node with no usable endpoints already gets the
matterUnknownplaceholder treatment; an aggregator with an empty parts list gets nothing at all and no explanation. Suggest an INFO/WARNING when a commissioned node's only endpoint is an Aggregator with no children — "this bridge is not currently exposing any devices over Matter; check its own configuration" — so the user isn't left wondering.Housekeeping: node
@1:35is still in the fabric as a live pairing that can never produce devices. It should be decommissioned (Plugins ▸ Matter ▸ Decommission Matter device…). Related: matter-server's storage showed orphan session-resumption records for@1:30and@1:33— node IDs no longer in the node list — which is what accumulates when partial/abandoned commissioning isn't cleaned up.Environment
matter-server 1.2.2, plugin 2026.7.10, Homebridge child bridges advertising on ports 5530 (
HomeConnect) and 5531 (Homebridge iCloud).🤖 Generated with Claude Code