{"record":{"id":"157c172b49b05aa1","repo":"home-assistant/core","slug":"wake-stream-failed","errorCode":"wake-stream-failed","errorMessage":"Unexpected error during wake-word-detection","messagePattern":"Unexpected error during wake-word-detection","errorType":"exception","errorClass":"WakeWordDetectionError","httpStatus":null,"severity":"error","filePath":"homeassistant/components/assist_pipeline/pipeline.py","lineNumber":794,"sourceCode":"                    audio_stream=stream,\n                    stt_audio_buffer=stt_audio_buffer,\n                    wake_word_vad=wake_word_vad,\n                ),\n                self.pipeline.wake_word_id,\n            )\n\n            if stt_audio_buffer is not None:\n                # All audio kept from right before the wake word was detected as\n                # a single chunk.\n                audio_chunks_for_stt.extend(stt_audio_buffer)\n        except WakeWordDetectionAborted:\n            raise\n        except WakeWordTimeoutError:\n            _LOGGER.debug(\"Timeout during wake word detection\")\n            raise\n        except Exception as src_error:\n            _LOGGER.exception(\"Unexpected error during wake-word-detection\")\n            raise WakeWordDetectionError(\n                code=\"wake-stream-failed\",\n                message=\"Unexpected error during wake-word-detection\",\n            ) from src_error\n\n        _LOGGER.debug(\"wake-word-detection result %s\", result)\n\n        if result is None:\n            wake_word_output: dict[str, Any] = {}\n        else:\n            # Avoid duplicate detections by checking cooldown\n            last_wake_up = self.hass.data[DATA_LAST_WAKE_UP].get(\n                result.wake_word_phrase\n            )\n            if last_wake_up is not None:\n                sec_since_last_wake_up = time.monotonic() - last_wake_up\n                if sec_since_last_wake_up < WAKE_WORD_COOLDOWN:\n                    _LOGGER.debug(\n                        \"Duplicate wake word detection occurred for %s\",","sourceCodeStart":776,"sourceCodeEnd":812,"githubUrl":"https://github.com/home-assistant/core/blob/58a3fdb3ea0538617f0a07efcfba6294de64fd59/homeassistant/components/assist_pipeline/pipeline.py#L776-L812","documentation":"WakeWordDetectionError with code 'wake-stream-failed' raised by PipelineRun.wake_word_detection as a catch-all after the wake-word entity's async_process_audio_stream raised an unexpected exception (not WakeWordDetectionAborted or WakeWordTimeoutError). The original exception is logged with a traceback and chained as __cause__.","triggerScenarios":"Streaming audio chunks to the wake word entity and its backend crashes: onnx model file missing/corrupt in openWakeWord, out-of-memory in the inference process, or a bug in a custom wake word provider.","commonSituations":"Incomplete model download for custom wake words; resource exhaustion on low-power hosts (Raspberry Pi) running multiple pipelines; provider integration updated with an incompatible model format.","solutions":["Read the logged 'Unexpected error during wake-word-detection' traceback - it names the real failure (file missing, OOM, etc.).","Re-download/reinstall the wake word models (e.g. clear the openWakeWord models cache).","Reduce concurrent wake-word streams or move inference off a memory-constrained host.","Update the wake word provider integration/library to a compatible version."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"Catch WakeWordDetectionAborted and WakeWordTimeoutError separately and re-raise; wrap everything else in a broad except Exception that logs the traceback (LOGGER.exception) and raises WakeWordDetectionError(code='wake-stream-failed') from src_error - the integration's own pattern.","preventionTips":["Verify wake word model files are present and loadable before streaming.","Log and inspect the chained cause; the code 'wake-stream-failed' is only a wrapper.","Monitor memory on the inference host to avoid OOM kills mid-stream."],"tags":["home-assistant","assist-pipeline","wake-word","audio-stream","diagnostics"],"backgroundTag":null,"analyzedSha":"58a3fdb3ea0538617f0a07efcfba6294de64fd59","analyzedAt":"2026-08-14T20:54:38.818Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}