Can someone help with my VPE logs

Hi all
I’m having a lot of problems with my VPE. It’s extremely temperamental and will work perfectly for a day or so and then just stop (with no changes made to HA). At first it was an AI issue that was causing problems but that seems to be working now. Now, when activating the VPE through “ok Nabu”, there is about a 20s delay before the rings flash to acknowledge. Then, sometimes it will just stop flashing and not respond. Other times it will give me the red sparkle lights for a while.
I’m getting the below error in the logs but I don’t have a clue where to start.
Any help would be appreciated

Logger: homeassistant.components.assist_satellite
Source: helpers/entity_platform.py:676
integration: Assist satellite (documentation, issues)
First occurred: 19:00:49 (7 occurrences)
Last logged: 23:20:23

Error adding entity assist_satellite.jarvis_voice_assist_assist_satellite for domain assist_satellite with platform esphome
Traceback (most recent call last):
  File "aioesphomeapi/connection.py", line 886, in send_messages_await_response_complex
TimeoutError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 676, in _async_add_entities
    await self._async_add_entity(
        entity, False, entity_registry, config_subentry_id
    )
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 1002, in _async_add_entity
    await entity.add_to_platform_finish()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1380, in add_to_platform_finish
    await self.async_added_to_hass()
  File "/usr/src/homeassistant/homeassistant/components/esphome/assist_satellite.py", line 260, in async_added_to_hass
    await self._update_satellite_config()
  File "/usr/src/homeassistant/homeassistant/components/esphome/assist_satellite.py", line 186, in _update_satellite_config
    config = await self.cli.get_voice_assistant_configuration(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        _CONFIG_TIMEOUT_SEC
        ^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/aioesphomeapi/client.py", line 1546, in get_voice_assistant_configuration
    resp = await self._get_connection().send_message_await_response(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<16 lines>...
    )
    ^
  File "aioesphomeapi/connection.py", line 904, in send_message_await_response
  File "aioesphomeapi/connection.py", line 890, in send_messages_await_response_complex
aioesphomeapi.core.TimeoutAPIError: Timeout waiting for VoiceAssistantConfigurationResponse after 5s

EDIT: After I wrote this it started listening again but missing half of what I was saying. Also not replying what it should. For example, I said “Nevermind” when it reacted. After a long while it responded with “you want to know about mind” and nothing else. Looking at the debug options in voice assist, it was supposed to say a long response (snapshot below).


I have also noticed that some of my AI issues come from it not hearing what I’m saying and then the intent recognition fails.

EDIT2: I’ve taken a video of it misbehaving. Apologies as there is over 2min from wake word till it falls over, but I wanted to capture the whole episode. Logs are below so don’t worry about reading them on the video. I was just trying to show when it was actually doing something.
Video: https://www.youtube.com/watch?v=ArmVvnKuC7w
Corresponding logs in VPE:

[10:21:20][D][micro_wake_word:322]: Detected 'Okay Nabu' with sliding average probability is 0.89 and max probability is 1.00
[10:21:20][D][media_player:083]: 'Media Player' - Setting
[10:21:20][D][media_player:087]:   Command: STOP
[10:21:20][D][media_player:096]:  Announcement: yes
[10:21:20][D][speaker_media_player:406]: State changed to ANNOUNCING
[10:21:20][D][speaker_media_player.pipeline:114]: Reading FLAC file type
[10:21:20][D][ring_buffer:034][ann_read]: Created ring buffer with size 1000000
[10:21:20][D][speaker_media_player.pipeline:124]: Decoded audio has 1 channels, 48000 Hz sample rate, and 16 bits per sample
[10:21:20][D][ring_buffer:034]: Created ring buffer with size 9600
[10:21:20][D][speaker_mixer:316]: Starting speaker mixer
[10:21:20][D][speaker_mixer:324]: Started speaker mixer
[10:21:20][D][voice_assistant:477]: State changed from IDLE to START_MICROPHONE
[10:21:20][D][voice_assistant:484]: Desired state set to START_PIPELINE
[10:21:20][D][voice_assistant:207]: Starting Microphone
[10:21:20][D][ring_buffer:034]: Created ring buffer with size 16384
[10:21:20][D][voice_assistant:477]: State changed from START_MICROPHONE to STARTING_MICROPHONE
[10:21:21][D][voice_assistant:477]: State changed from STARTING_MICROPHONE to START_PIPELINE
[10:21:21][D][voice_assistant:228]: Requesting start
[10:21:21][D][voice_assistant:477]: State changed from START_PIPELINE to STARTING_PIPELINE
[10:21:21][D][speaker_media_player:406]: State changed to IDLE
[10:21:21][D][speaker_mixer:329]: Stopping speaker mixer
[10:21:25][D][voice_assistant:499]: Client started, streaming microphone
[10:21:25][D][voice_assistant:477]: State changed from STARTING_PIPELINE to STREAMING_MICROPHONE
[10:21:25][D][voice_assistant:484]: Desired state set to STREAMING_MICROPHONE
[10:21:25][D][voice_assistant:623]: Event Type: 1
[10:21:25][D][voice_assistant:626]: Assist Pipeline running
[10:21:28][D][voice_assistant:623]: Event Type: 3
[10:21:28][D][voice_assistant:645]: STT started
[10:21:28][D][light:086]: 'voice_assistant_leds' Setting:
[10:21:28][D][light:099]:   State: ON
[10:21:28][D][light:074]:   Brightness: 66%
[10:21:28][D][light:160]:   Effect: 'Waiting for Command'
[10:22:28][W][api.connection:215]: Buffer full, ping queued
[10:23:58][W][api.connection:205]: Home Assistant 2025.10.2 (192.168.0.110) is unresponsive; disconnecting
[10:23:58][D][light:086]: 'voice_assistant_leds' Setting:
[10:23:58][D][light:074]:   Brightness: 66%
[10:23:58][D][voice_assistant:477]: State changed from STREAMING_MICROPHONE to STOP_MICROPHONE
[10:23:58][D][voice_assistant:484]: Desired state set to IDLE
[10:23:58][D][light:086]: 'voice_assistant_leds' Setting:
[10:23:58][D][light:074]:   Brightness: 66%
[10:23:58][D][light:110]:   Red: 100%, Green: 0%, Blue: 0%
[10:23:58][D][light:160]:   Effect: 'Twinkle'
[10:23:58][W][component:287]: api set Warning flag: unspecified
[10:23:58][D][voice_assistant:477]: State changed from STOP_MICROPHONE to STOPPING_MICROPHONE
[10:23:58][D][voice_assistant:477]: State changed from STOPPING_MICROPHONE to IDLE

Corresponding logs in HA Voice Assist Debug:

stage: stt
run:
  pipeline: 01k6fn96zgfxw88knn926mxktk
  language: en
  conversation_id: 01K7RQJR7FD4AE6D0DGZR18AK4
  satellite_id: assist_satellite.jarvis_voice_assist_assist_satellite
  tts_output:
    token: Sf__x353pw2uU_zVEh7iTA.flac
    url: /api/tts_proxy/Sf__x353pw2uU_zVEh7iTA.flac
    mime_type: audio/flac
    stream_response: true
events:
  - type: run-start
    data:
      pipeline: 01k6fn96zgfxw88knn926mxktk
      language: en
      conversation_id: 01K7RQJR7FD4AE6D0DGZR18AK4
      satellite_id: assist_satellite.jarvis_voice_assist_assist_satellite
      tts_output:
        token: Sf__x353pw2uU_zVEh7iTA.flac
        url: /api/tts_proxy/Sf__x353pw2uU_zVEh7iTA.flac
        mime_type: audio/flac
        stream_response: true
    timestamp: "2025-10-17T09:21:27.794575+00:00"
  - type: stt-start
    data:
      engine: stt.faster_whisper
      metadata:
        language: en
        format: wav
        codec: pcm
        bit_rate: 16
        sample_rate: 16000
        channel: 1
    timestamp: "2025-10-17T09:21:27.795344+00:00"
stt:
  engine: stt.faster_whisper
  metadata:
    language: en
    format: wav
    codec: pcm
    bit_rate: 16
    sample_rate: 16000
    channel: 1
  done: false

I’ve added a couple edits to the original post in the hope that someone can help

You using seperate AI? This weird response it from that. you can try improving your prompt.

its timing out. Have you verified the network connection isnt dropping.
What version firmware/Esphome are you running?

Thanks for helping.

It can’t be the prompt as sometimes the vpe only catches the first word. For example, I said “what’s the time” and it only heard “what’s”. No prompt will help that :joy:

But the network may be something. I also noticed that there was some stutter from my media playback recently. I moved the unit and it’s stable for now. But I have had other times where it’s been stable for a few days and then starts giving problems, so I’ll monitor it. I did check unifi and showed the signal strength as good. It’s also quite close to an AP but you never know how other devices are interfering at that specific spot. If this is the problem, I misunderstood how the device works. I thought the voice wakeup and ring led would have been coded in to the device’s firmware so it would have shown a visual response even if the network fails. But I’ve had times where the ring lights up 20s after the wake word.
Either way, I’m hoping this is the quick and easy solution.
Thanks again

Depends on help you seek. If you just want tovoice assistant to ignore this you could provide a prompt that effectively says “ignore nonsense inputs” but yes, this could be either Device inability to physically captur audio input or software cutting off input. I would guess it wasn’t captured first.

It is or at least should be. But it has to process wake word and wait for response. Look at code closely. LEDs activate based on step in process like wake word detect >> LED blue but if it hasn’t “detected” the wake word the LEDs won’t light. If you look at logs there should be indication of this. It is also possible to add detailed log info into code so it more clearly shows where it is in process if it’s not already in code