You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Live evidence from jarvis (2026-06-12, the energy-plug rig device, found while validating #60/#61).
What happened
The rig device node-matter Energy Plug (node 0x20, created as matterRelay) had its type changed to matterDimmer via Indigo's Edit Device Type menu. Result, captured by instrumented reconciles:
EXPERIMENT energy plug: type='matterDimmer' enabled=True configured=False
EXPERIMENT iter('self') returned 19 devices # 20 exist — the flipped one is absent
EXPERIMENT index keys: [...] # (32, 1) missing
Indigo mutates deviceTypeIdimmediately on menu selection — an unsaved (or guard-rejected) dialog still leaves the type changed, with configured=False.
Unconfigured devices are excluded from iter("self") and never receive deviceStartComm.
Downstream: the index loses the node, _unique_name can't see the name (it iterates the same collection), reconcile attempts a re-create, and Indigo rejects it server-side with NameNotUniqueError — previously a raw traceback every reconcile.
_create_one now converts the collision into an actionable warning naming the device and the remedy (delete + reload; reconcile recreates it correctly).
Possibly worth doing later
rebuild_index could additionally scan the unfiltered indigo.devices collection for our pluginId to spot configured=False strays and warn about them directly at reconcile (rather than waiting for the create collision).
Docs: note in TESTING.md / README troubleshooting that the Type menu must never be used on Matter devices, and that the failure signature is this warning.
The remedy for the rig device itself: delete node-matter Energy Plug in the Indigo UI and reload the plugin.
Live evidence from jarvis (2026-06-12, the energy-plug rig device, found while validating #60/#61).
What happened
The rig device
node-matter Energy Plug(node 0x20, created asmatterRelay) had its type changed tomatterDimmervia Indigo's Edit Device Type menu. Result, captured by instrumented reconciles:deviceTypeIdimmediately on menu selection — an unsaved (or guard-rejected) dialog still leaves the type changed, withconfigured=False.iter("self")and never receivedeviceStartComm.validateDeviceConfigUionly fires on a completed save, and thedeviceStartCommbackstop never runs._unique_namecan't see the name (it iterates the same collection), reconcile attempts a re-create, and Indigo rejects it server-side withNameNotUniqueError— previously a raw traceback every reconcile.Shipped mitigation (PR #61)
_create_onenow converts the collision into an actionable warning naming the device and the remedy (delete + reload; reconcile recreates it correctly).Possibly worth doing later
rebuild_indexcould additionally scan the unfilteredindigo.devicescollection for ourpluginIdto spot configured=False strays and warn about them directly at reconcile (rather than waiting for the create collision).The remedy for the rig device itself: delete
node-matter Energy Plugin the Indigo UI and reload the plugin.