home-assistant/core · error · WakeWordDetectionError

wake-provider-missing

wake-provider-missing

Error message

No wake-word-detection provider for: {entity_id}

What it means

WakeWordDetectionError with code 'wake-provider-missing' raised when an entity_id WAS resolved (configured default or pipeline.wake_word_entity) but wake_word.async_get_wake_word_detection_entity returns None for it - the entity id points at something that is not (currently) a loaded wake word detection entity.

Source

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

        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,
        stream: AsyncIterable[EnhancedAudioChunk],
        audio_chunks_for_stt: list[EnhancedAudioChunk],
    ) -> wake_word.DetectionResult | None:
        """Run wake-word-detection portion of pipeline. Returns detection result."""
        metadata_dict = asdict(
            stt.SpeechMetadata(
                language="",
                format=stt.AudioFormats.WAV,
                codec=stt.AudioCodecs.PCM,

View on GitHub (pinned to 58a3fdb3ea)

Solutions

  1. Check the entity exists under Developer Tools -> States and is a wake_word entity; fix pipeline.wake_word_entity or the default entity config.
  2. Reload the wake word provider integration so its entities register, then retry.
  3. Clear the pinned entity in pipeline settings to fall back to the auto-detected default.
Defensive patterns

Strategy: validation

Validate before calling

from homeassistant.components import wake_word

def provider_loaded(hass, entity_id: str) -> bool:
    return wake_word.async_get_wake_word_detection_entity(hass, entity_id) is not None

Try / catch

Catch WakeWordDetectionError and switch on code == 'wake-provider-missing' to re-resolve the default entity or reconfigure pipeline.wake_word_entity, then retry prepare_wake_word_detection.

Prevention

When it happens

Trigger: prepare_wake_word_detection() with a stale pipeline.wake_word_entity (provider renamed, removed, or not yet loaded at call time); entity id of a non-wake-word entity configured by mistake.

Common situations: Wake word provider integration reloaded/renamed after the pipeline was configured; startup race where the pipeline run starts before the provider platform finishes loading; restored config referencing an old entity id.

Related errors


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