home-assistant/core · error · AlexaInvalidEndpointError
NO_SUCH_ENDPOINT
NO_SUCH_ENDPOINT
Error message
The endpoint {endpoint_id} does not exist What it means
Raised by AlexaDirective.load_entity (state_report.py): the directive's endpointId is converted to an entity_id, and if hass.states.get returns no state or config.should_expose(entity_id) is false, AlexaInvalidEndpointError is raised with NO_SUCH_ENDPOINT. It also doubles as the not-exposed error.
Source
Thrown at homeassistant/components/alexa/state_report.py:117
Sets these attributes when self.has_endpoint is True:
- entity
- entity_id
- endpoint
- instance (when header includes instance property)
Behavior when self.has_endpoint is False is undefined.
Will raise AlexaInvalidEndpointError if the endpoint in the request is
malformed or nonexistent.
"""
_endpoint_id: str = self._directive[API_ENDPOINT]["endpointId"]
self.entity_id = _endpoint_id.replace("#", ".")
entity: State | None = hass.states.get(self.entity_id)
if not entity or not config.should_expose(self.entity_id):
raise AlexaInvalidEndpointError(_endpoint_id)
self.entity = entity
self.endpoint = ENTITY_ADAPTERS[self.entity.domain](hass, config, self.entity)
if "instance" in self._directive[API_HEADER]:
self.instance = self._directive[API_HEADER]["instance"]
def response(
self,
name: str = "Response",
namespace: str = "Alexa",
payload: dict[str, Any] | None = None,
) -> AlexaResponse:
"""Create an API formatted response.
Async friendly.
"""
response = AlexaResponse(name, namespace, payload)
View on GitHub (pinned to 58a3fdb3ea)
Solutions
- Expose the entity in the Alexa/entity cloud filters and run 'Alexa, discover devices'
- If the entity was renamed, update or re-discover so Alexa maps to the new endpointId
- Confirm the entity exists via hass.states.get(entity_id) and should_expose returns true
Defensive patterns
Strategy: validation
Validate before calling
state = hass.states.get(entity_id)
if state is None or not config.should_expose(entity_id):
raise ValueError(f'{entity_id} missing or not exposed; run Alexa rediscovery') Type guard
def endpoint_available(hass, config, entity_id: str) -> bool:
return hass.states.get(entity_id) is not None and config.should_expose(entity_id) Try / catch
Catch AlexaInvalidEndpointError (NO_SUCH_ENDPOINT), verify the entity still exists and is exposed, then trigger rediscovery.
Prevention
- Check hass.states.get and should_expose before sending directives
- Run 'Alexa, discover devices' after renaming or removing entities
- Keep cloud entity filters aligned with the entities Alexa knows
When it happens
Trigger: Alexa sends a directive for an endpoint that was deleted, renamed, is not exposed via should_expose filters (entity list / include/exclude config), or whose entity_id no longer matches the cached endpointId.
Common situations: Device removed or renamed after Alexa discovery; entity excluded in cloud smart_home filter_config; stale Alexa cache; entity_id changed via the UI.
Related errors
- INVALID_DIRECTIVE
- INVALID_VALUE
- TEMPERATURE_VALUE_OUT_OF_RANGE
- INVALID_TARGET_STATE
- UNSUPPORTED_THERMOSTAT_MODE
AI-assisted analysis of home-assistant/core@58a3fdb3ea (2026-08-14).
Data as JSON: /api/errors/aeaafbad565c8904.
Report an issue: GitHub.