{"record":{"id":"3a4c7cd0ed7bcb6d","repo":"home-assistant/core","slug":"wake-provider-missing","errorCode":"wake-provider-missing","errorMessage":"No wake-word-detection provider for: {entity_id}","messagePattern":"No wake-word-detection provider for: (.+?)","errorType":"exception","errorClass":"WakeWordDetectionError","httpStatus":null,"severity":"error","filePath":"homeassistant/components/assist_pipeline/pipeline.py","lineNumber":710,"sourceCode":"        pipeline_data = self.hass.data[KEY_ASSIST_PIPELINE]\n        pipeline_data.pipeline_runs.remove_run(self)\n\n    async def prepare_wake_word_detection(self) -> None:\n        \"\"\"Prepare wake-word-detection.\"\"\"\n        entity_id = self.pipeline.wake_word_entity or wake_word.async_default_entity(\n            self.hass\n        )\n        if entity_id is None:\n            raise WakeWordDetectionError(\n                code=\"wake-engine-missing\",\n                message=\"No wake word engine\",\n            )\n\n        wake_word_entity = wake_word.async_get_wake_word_detection_entity(\n            self.hass, entity_id\n        )\n        if wake_word_entity is None:\n            raise WakeWordDetectionError(\n                code=\"wake-provider-missing\",\n                message=f\"No wake-word-detection provider for: {entity_id}\",\n            )\n\n        self.wake_word_entity_id = entity_id\n        self.wake_word_entity = wake_word_entity\n\n    async def wake_word_detection(\n        self,\n        stream: AsyncIterable[EnhancedAudioChunk],\n        audio_chunks_for_stt: list[EnhancedAudioChunk],\n    ) -> wake_word.DetectionResult | None:\n        \"\"\"Run wake-word-detection portion of pipeline. Returns detection result.\"\"\"\n        metadata_dict = asdict(\n            stt.SpeechMetadata(\n                language=\"\",\n                format=stt.AudioFormats.WAV,\n                codec=stt.AudioCodecs.PCM,","sourceCodeStart":692,"sourceCodeEnd":728,"githubUrl":"https://github.com/home-assistant/core/blob/58a3fdb3ea0538617f0a07efcfba6294de64fd59/homeassistant/components/assist_pipeline/pipeline.py#L692-L728","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","solutions":["Check the entity exists under Developer Tools -> States and is a wake_word entity; fix pipeline.wake_word_entity or the default entity config.","Reload the wake word provider integration so its entities register, then retry.","Clear the pinned entity in pipeline settings to fall back to the auto-detected default."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"from homeassistant.components import wake_word\n\ndef provider_loaded(hass, entity_id: str) -> bool:\n    return wake_word.async_get_wake_word_detection_entity(hass, entity_id) is not None","typeGuard":null,"tryCatchPattern":"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.","preventionTips":["After renaming/reloading wake word providers, update pipeline.wake_word_entity references.","Verify the entity exists and is a wake_word entity via async_get_wake_word_detection_entity before use.","Handle startup ordering: wait for the provider platform to load before preparing runs."],"tags":["home-assistant","assist-pipeline","wake-word","entity-not-found","voice"],"backgroundTag":null,"analyzedSha":"58a3fdb3ea0538617f0a07efcfba6294de64fd59","analyzedAt":"2026-08-14T20:54:38.818Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}