Symptom
Exported accessories work (control fine, both directions) but Apple Home refuses to change their room. Reproduced across a plugin upgrade and a bridge-node upgrade; a newly exported device could be roomed normally, but once removed and re-added it too became stuck, landing in the bridge's own room.
Cause
Stale Apple-side accessory records. Room assignment lives entirely in the HomeKit/iCloud home database and never crosses Matter — no bridge-side change can cause or cure it. Apple matches returning accessories by UniqueID, which is derived from the Indigo device ID and is deliberately stable (that stability is what protects names/rooms across restarts — see XAC5).
Remedy (verified 2026-08-06)
- Apple Home → the bridge → Remove Accessory.
- Check the fabric count. Apple removes only one of its two fabrics this way — the iCloud Keychain one survives. matter.js documents this. Clear the leftover with Plugins ▸ Matter ▸ Unpair an Ecosystem… (it is also the last fabric, so the node factory-resets itself and clears its commissioning witness — expected).
- Re-pair via Pair Matter Bridge…. The pairing code is unchanged (the identity file persists the passcode).
- Rooms are editable again.
Cost: names, rooms, scenes and automations for exported accessories are lost, and a post-reset endpoint-number drift report is expected (matter.js's allocation is wiped while our map survives — the map is the witness, and Rebuild Matter Endpoint Map… adopts the live numbers).
To do
Replace docs/INSTALL.md's current "Observed and unexplained" troubleshooting row with this remedy, including the leftover-fabric step (the one people will miss) and the expected post-reset drift.
Symptom
Exported accessories work (control fine, both directions) but Apple Home refuses to change their room. Reproduced across a plugin upgrade and a bridge-node upgrade; a newly exported device could be roomed normally, but once removed and re-added it too became stuck, landing in the bridge's own room.
Cause
Stale Apple-side accessory records. Room assignment lives entirely in the HomeKit/iCloud home database and never crosses Matter — no bridge-side change can cause or cure it. Apple matches returning accessories by
UniqueID, which is derived from the Indigo device ID and is deliberately stable (that stability is what protects names/rooms across restarts — see XAC5).Remedy (verified 2026-08-06)
Cost: names, rooms, scenes and automations for exported accessories are lost, and a post-reset endpoint-number drift report is expected (matter.js's allocation is wiped while our map survives — the map is the witness, and Rebuild Matter Endpoint Map… adopts the live numbers).
To do
Replace
docs/INSTALL.md's current "Observed and unexplained" troubleshooting row with this remedy, including the leftover-fabric step (the one people will miss) and the expected post-reset drift.