home-assistant/core · error · WakeWordDetectionError

wake-engine-missing

wake-engine-missing

Error message

No wake word engine

What it means

WakeWordDetectionError with code 'wake-engine-missing' raised by PipelineRun.prepare_wake_word_detection when no wake word entity can be resolved: the pipeline's wake_word_entity is unset and wake_word.async_default_entity(hass) returns None, meaning no wake-word-detection integration (e.g. openWakeWord, microWakeWord) is loaded.

Source

Thrown at homeassistant/components/assist_pipeline/pipeline.py:701

        # This ensures that files are properly closed if the event handler reads them.
        await self._stop_debug_recording_thread()

        self.process_event(
            PipelineEvent(
                PipelineEventType.RUN_END,
            )
        )

        pipeline_data = self.hass.data[KEY_ASSIST_PIPELINE]
        pipeline_data.pipeline_runs.remove_run(self)

    async def prepare_wake_word_detection(self) -> None:
        """Prepare wake-word-detection."""
        entity_id = self.pipeline.wake_word_entity or wake_word.async_default_entity(
            self.hass
        )
        if entity_id is None:
            raise WakeWordDetectionError(
                code="wake-engine-missing",
                message="No wake word engine",
            )

        wake_word_entity = wake_word.async_get_wake_word_detection_entity(
            self.hass, entity_id
        )
        if wake_word_entity is None:
            raise WakeWordDetectionError(
                code="wake-provider-missing",
                message=f"No wake-word-detection provider for: {entity_id}",
            )

        self.wake_word_entity_id = entity_id
        self.wake_word_entity = wake_word_entity

    async def wake_word_detection(
        self,

View on GitHub (pinned to 58a3fdb3ea)

Solutions

  1. Install/enable a wake word detection integration (e.g. openWakeWord via HACS or microWakeWord bundled with voice pipelines).
  2. Restart or reload so async_default_entity finds the provider, then retry.
  3. Alternatively pin pipeline.wake_word_entity to a specific existing entity id.
Defensive patterns

Strategy: validation

Validate before calling

from homeassistant.components import wake_word

def wake_available(hass, pipeline) -> bool:
    entity_id = pipeline.wake_word_entity or wake_word.async_default_entity(hass)
    return entity_id is not None

Try / catch

Catch WakeWordDetectionError around prepare_wake_word_detection() and branch on err.code: 'wake-engine-missing' -> prompt the user to install a wake word integration; 'wake-provider-missing' -> fix the configured entity.

Prevention

When it happens

Trigger: Calling prepare_wake_word_detection() (directly or via a satellite starting wake-word mode) on a system with zero wake word entities, or where the provider integration is not loaded/enabled.

Common situations: Voice satellite or Assist voice setup attempted before installing a wake word add-on/integration; provider integration disabled after setup; ESPHome satellites relying on the host for wake detection.

Related errors


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