{"record":{"id":"99ab6872f5f4c05a","repo":"home-assistant/core","slug":"built-in-conversation-agent-does-not-support-start","errorCode":null,"errorMessage":"Built-in conversation agent does not support starting conversations","messagePattern":"Built-in conversation agent does not support starting conversations","errorType":"exception","errorClass":"HomeAssistantError","httpStatus":null,"severity":"error","filePath":"homeassistant/components/assist_satellite/entity.py","lineNumber":276,"sourceCode":"        \"\"\"Start a conversation from the satellite.\n\n        If start_media_id is not provided, message is synthesized to\n        audio with the selected pipeline.\n\n        If start_media_id is provided, it is played directly. It is possible\n        to omit the message and the satellite will not show any text.\n\n        If preannounce is True, a sound is played before the start message or media.\n        If preannounce_media_id is provided, it overrides the default sound.\n\n        Calls async_start_conversation.\n        \"\"\"\n        await self._cancel_running_pipeline()\n\n        # The Home Assistant built-in agent doesn't support conversations.\n        pipeline = async_get_pipeline(self.hass, self._resolve_pipeline())\n        if pipeline.conversation_engine == conversation.HOME_ASSISTANT_AGENT:\n            raise HomeAssistantError(\n                \"Built-in conversation agent does not support starting conversations\"\n            )\n\n        if start_message is None:\n            start_message = \"\"\n\n        announcement = await self._resolve_announcement_media_id(\n            start_message,\n            start_media_id,\n            preannounce_media_id=preannounce_media_id if preannounce else None,\n        )\n\n        if self._is_announcing:\n            raise SatelliteBusyError\n\n        self._is_announcing = True\n        self._set_state(AssistSatelliteState.RESPONDING)\n","sourceCodeStart":258,"sourceCodeEnd":294,"githubUrl":"https://github.com/home-assistant/core/blob/58a3fdb3ea0538617f0a07efcfba6294de64fd59/homeassistant/components/assist_satellite/entity.py#L258-L294","documentation":"Raised by AssistSatelliteEntity._async_announce when the resolved pipeline's conversation_engine is the Home Assistant built-in agent (conversation.HOME_ASSISTANT_AGENT). The built-in agent cannot carry on free-form conversations, so announcing with start_conversation semantics (waiting for a spoken reply) is rejected upfront.","triggerScenarios":"Calling async_start_conversation (directly or via a pipeline preference) while the selected pipeline uses the 'Home Assistant agent' conversation engine; the entity's preferred pipeline falls back to the default pipeline whose engine is the built-in agent.","commonSituations":"Default pipeline left on the built-in conversation agent; user selected a preferred pipeline that was edited to use the built-in agent; satellite integration testing announce-conversation against a fresh install.","solutions":["Set the pipeline's conversation engine to a capable agent (e.g. a supported cloud/Local LLM agent) in Settings > Voice assistants","Point the satellite entity at a pipeline that uses such an agent (pipeline_name option / preferred pipeline)","Update or create the pipeline with conversation_engine set to a non-builtin agent before calling start_conversation"],"exampleFix":"# before (default pipeline uses HOME_ASSISTANT_AGENT)\nawait entity.async_start_conversation(start_message=\"Hi, what's next?\")\n\n# after: select a pipeline with a conversation-capable agent\nfrom homeassistant.components.conversation import async_create_default_agent  # illustrative\n# ensure the pipeline passed to async_get_pipeline uses e.g. an Ollama/OpenAI agent\nawait entity.async_start_conversation(start_message=\"Hi, what's next?\")","handlingStrategy":"validation","validationCode":"from homeassistant.components import conversation\nfrom homeassistant.components.assist_pipeline import async_get_pipeline\npipeline = async_get_pipeline(hass, entity._resolve_pipeline())\nif pipeline.conversation_engine == conversation.HOME_ASSISTANT_AGENT:\n    raise UnsupportedAgent(\"Select a pipeline with a conversation-capable agent\")","typeGuard":null,"tryCatchPattern":"try:\n    await entity.async_start_conversation(start_message=\"...\")\nexcept HomeAssistantError as err:\n    if \"Built-in conversation agent\" in str(err):\n        # switch pipeline / fall back to plain announce\n        await entity.async_internal_announce(...)\n    else:\n        raise","preventionTips":["Configure satellites to use a pipeline whose conversation agent supports dialogues","After editing pipelines, re-test announce/start-conversation flows","Never assume the default pipeline can converse; assert the engine before calling"],"tags":["assist-satellite","conversation-agent","pipeline","voice"],"backgroundTag":null,"analyzedSha":"58a3fdb3ea0538617f0a07efcfba6294de64fd59","analyzedAt":"2026-08-14T20:54:38.818Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}