Skip to content

Guard bad entity ID in entity registry#35271

Merged
balloob merged 2 commits intodevfrom
guard-bad-entity-id
May 5, 2020
Merged

Guard bad entity ID in entity registry#35271
balloob merged 2 commits intodevfrom
guard-bad-entity-id

Conversation

@balloob
Copy link
Copy Markdown
Member

@balloob balloob commented May 5, 2020

Breaking change

Proposed change

We changed the entity ID format last year. I just came across a stack trace from a user that still had bad entities crashing the state restoration of the entity registry.

This PR fixes it.

2020-05-05 12:58:58 ERROR (MainThread) [homeassistant.core] Error doing job: Exception in callback async_setup_entity_restore.<locals>._write_unavailable_states(<Event homeassistant_start[L]>) at /usr/src/homeassistant/homeassistant/helpers/entity_registry.py:572
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/asyncio/events.py", line 88, in _run
    self._context.run(self._callback, *self._args)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_registry.py", line 604, in _write_unavailable_states
    states.async_set(entry.entity_id, STATE_UNAVAILABLE, attrs)
  File "/usr/src/homeassistant/homeassistant/core.py", line 994, in async_set
    state = State(entity_id, new_state, attributes, last_changed, None, context)
  File "/usr/src/homeassistant/homeassistant/core.py", line 736, in __init__
    f"Invalid entity id encountered: {entity_id}. "
homeassistant.exceptions.InvalidEntityFormatError: Invalid entity id encountered: media_player.tclroku_tv__2n006r392241. Format should be <domain>.<object_id>

Type of change

  • Dependency upgrade
  • Bugfix (non-breaking change which fixes an issue)
  • New integration (thank you!)
  • New feature (which adds functionality to an existing integration)
  • Breaking change (fix/feature causing existing functionality to break)
  • Code quality improvements to existing code or addition of tests

Example entry for configuration.yaml:

# Example configuration.yaml

Additional information

  • This PR fixes or closes issue: fixes #
  • This PR is related to issue:
  • Link to documentation pull request:

Checklist

  • The code change is tested and works locally.
  • Local tests pass. Your PR cannot be merged unless tests pass
  • There is no commented out code in this PR.
  • I have followed the development checklist
  • The code has been formatted using Black (black --fast homeassistant tests)
  • Tests have been added to verify that the new code works.

If user exposed functionality or configuration variables are added/changed:

If the code communicates with devices, web services, or third-party tools:

  • The manifest file has all fields filled out correctly.
    Updated and included derived files by running: python3 -m script.hassfest.
  • New or updated dependencies have been added to requirements_all.txt.
    Updated by running python3 -m script.gen_requirements_all.
  • Untested files have been added to .coveragerc.

The integration reached or maintains the following Integration Quality Scale:

  • No score or internal
  • 🥈 Silver
  • 🥇 Gold
  • 🏆 Platinum

@probot-home-assistant probot-home-assistant Bot added bugfix core small-pr PRs with less than 30 lines. labels May 5, 2020
Comment thread homeassistant/helpers/entity_registry.py Outdated
@balloob balloob merged commit a330eba into dev May 5, 2020
@balloob balloob deleted the guard-bad-entity-id branch May 5, 2020 22:07
@lock lock Bot locked and limited conversation to collaborators May 21, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

bugfix cla-signed core small-pr PRs with less than 30 lines.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants