Skip to content

Apple Home: room edits fail on accessories from a previous pairing (SOLVED — document the remedy) #139

Description

@simons-plugins

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)

  1. Apple Home → the bridge → Remove Accessory.
  2. 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).
  3. Re-pair via Pair Matter Bridge…. The pairing code is unchanged (the identity file persists the passcode).
  4. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions