Pre-existing (not introduced by PR #80, but #80's meter links add one more path that reaches it): device_sync.py _on_attribute/apply_states do indigo.devices[dev_id] unguarded (:1376, :1390) — the try/except wraps only handler.on_attribute_update, not the dict lookup. If a device is deleted out-of-band while its node (or forward-linked source endpoint) keeps reporting, this raises an uncaught KeyError per event until reconcile. Other sites in the same file guard the same pattern (:1300, :1358). Fix: same guard + debug log, all sites.
Found during PR #80's test-coverage review.
🤖 Generated with Claude Code
https://claude.ai/code/session_01Arj5R66d73tc3PMPvHS65Z
Pre-existing (not introduced by PR #80, but #80's meter links add one more path that reaches it):
device_sync.py_on_attribute/apply_statesdoindigo.devices[dev_id]unguarded (:1376, :1390) — the try/except wraps only:1300, :1358). Fix: same guard + debug log, all sites.handler.on_attribute_update, not the dict lookup. If a device is deleted out-of-band while its node (or forward-linked source endpoint) keeps reporting, this raises an uncaught KeyError per event until reconcile. Other sites in the same file guard the same pattern (Found during PR #80's test-coverage review.
🤖 Generated with Claude Code
https://claude.ai/code/session_01Arj5R66d73tc3PMPvHS65Z