home-assistant/core · error · HomeAssistantError

No answer from satellite

Error message

No answer from satellite

What it means

Raised when satellite_entity.async_internal_ask_question returns None, meaning the satellite never produced an AssistSatelliteAnswer. The internal wrapper returns None when the entity does not support the ANNOUNCE/ask feature or when the underlying device interaction yields no answer object.

Source

Thrown at homeassistant/components/assist_satellite/__init__.py:147

        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")

        return asdict(answer)

    hass.services.async_register(
        domain=DOMAIN,
        service="ask_question",
        service_func=handle_ask_question,
        schema=vol.All(
            {
                vol.Required(ATTR_ENTITY_ID): cv.entity_domain(DOMAIN),
                vol.Optional("question"): str,
                vol.Optional("question_media_id"): _media_id_validator,
                vol.Optional("preannounce", default=True): bool,
                vol.Optional("preannounce_media_id"): _media_id_validator,
                vol.Optional("answers"): [
                    {
                        vol.Required("id"): str,
                        vol.Required("sentences"): vol.All(

View on GitHub (pinned to 58a3fdb3ea)

Solutions

  1. Confirm the satellite entity supports announcing: check supported_features for AssistSatelliteEntityFeature.ANNOUNCE
  2. Update the satellite integration to a version implementing async_ask_question
  3. Test the satellite with assist_satellite.announce first to verify the announcement path works
  4. Check the device is online and its state is idle before asking
Defensive patterns

Strategy: try-catch

Validate before calling

features = hass.states.get(entity_id).attributes.get("supported_features", 0)
from homeassistant.components.assist_satellite import AssistSatelliteEntityFeature
if not features & AssistSatelliteEntityFeature.ANNOUNCE:
    raise UnsupportedFeature(f"{entity_id} cannot announce/answer questions")

Try / catch

try:
    answer = await satellite.async_internal_ask_question(**args)
except HomeAssistantError as err:
    if "No answer from satellite" in str(err):
        # degrade gracefully: skip question, log device state
        return None
    raise

Prevention

When it happens

Trigger: Calling ask_question on a satellite whose supported_features lack AssistSatelliteEntityFeature.ANNOUNCE (feature check inside async_internal_ask_question returns None); device firmware ignoring the question; media announcement failed silently so no answer path executed.

Common situations: Using ask_question with an integration that only implements basic wake-word satellites; version mismatch where the integration has not adopted the ask-question API yet; device offline mid-announcement.

Related errors


AI-assisted analysis of home-assistant/core@58a3fdb3ea (2026-08-14). Data as JSON: /api/errors/8827a15f447c73f4. Report an issue: GitHub.