home-assistant/core · error · HomeAssistantError
Invalid Assist satellite entity id: {satellite_entity_id}
Error message
Invalid Assist satellite entity id: {satellite_entity_id} What it means
A plain HomeAssistantError raised when component.get_entity(satellite_entity_id) returns None for the assist_satellite component. The voluptuous schema only validates the entity_id's domain (cv.entity_domain), not that the entity exists, so a well-formed id referencing a missing/not-yet-loaded entity reaches this check and fails.
Source
Thrown at homeassistant/components/assist_satellite/__init__.py:130
if user is None:
raise UnknownUser(
context=call.context,
permission=POLICY_CONTROL,
user_id=call.context.user_id,
)
if not user.permissions.check_entity(satellite_entity_id, POLICY_CONTROL):
raise Unauthorized(
context=call.context,
permission=POLICY_CONTROL,
user_id=call.context.user_id,
perm_category=CAT_ENTITIES,
)
satellite_entity: AssistSatelliteEntity | None = component.get_entity(
satellite_entity_id
)
if satellite_entity is None:
raise HomeAssistantError(
f"Invalid Assist satellite entity id: {satellite_entity_id}"
)
ask_question_args = {
"question": call.data.get("question"),
"question_media_id": call.data.get("question_media_id"),
"preannounce": call.data.get("preannounce", True),
"answers": call.data.get("answers"),
}
if preannounce_media_id := call.data.get("preannounce_media_id"):
ask_question_args["preannounce_media_id"] = preannounce_media_id
answer = await satellite_entity.async_internal_ask_question(**ask_question_args)
if answer is None:
raise HomeAssistantError("No answer from satellite")
View on GitHub (pinned to 58a3fdb3ea)
Solutions
- Check the entity exists in Developer Tools > States before calling the service
- Fix or update the entity_id in the calling automation/script
- If the entity should exist, verify its integration loaded successfully (Settings > Devices & Services) and reload it
- For programmatic callers, use hass.states.async_get(entity_id) or the entity registry to validate first
Example fix
# before
await hass.services.async_call(
"assist_satellite", "ask_question",
{"entity_id": "assist_satellite.living_room", "question": "Hello?"},
)
# after
if hass.states.get("assist_satellite.living_room") is None:
raise HomeAssistantError("Satellite entity not present")
await hass.services.async_call(
"assist_satellite", "ask_question",
{"entity_id": "assist_satellite.living_room", "question": "Hello?"},
) Defensive patterns
Strategy: validation
Validate before calling
from homeassistant.helpers import entity_registry as er
ent_reg = er.async_get(hass)
entry = ent_reg.async_get(satellite_entity_id)
if entry is None or entry.disabled_by:
raise ValueError(f"{satellite_entity_id} is not an available satellite") Try / catch
try:
await hass.services.async_call("assist_satellite", "ask_question", data)
except HomeAssistantError as err:
if str(err).startswith("Invalid Assist satellite entity id"):
# refresh your entity list / notify user
... Prevention
- Resolve entity_ids from the entity registry or labels instead of hardcoding strings
- Wait for HA startup (homeassistant_started event) before calling entity services
- When a satellite device is removed, update dependent automations immediately
When it happens
Trigger: Calling assist_satellite.ask_question with an entity_id whose domain is assist_satellite but which does not exist or belongs to an integration that failed setup; calling during HA startup before the satellite platform is loaded; entity was removed but the automation still references it.
Common situations: Stale entity_id in an automation or script after the satellite device was removed; race at startup where the service is invoked before platform setup completes; typo in the entity name portion of the id.
Related errors
AI-assisted analysis of home-assistant/core@58a3fdb3ea (2026-08-14).
Data as JSON: /api/errors/09732e8969289f72.
Report an issue: GitHub.