Google Assistant Fails to Recognize Exposed Scripts (NLU/Caching Error)

I am experiencing a persistent issue where Google Assistant fails to trigger exposed Home Assistant Scripts (Scenes/Routines) despite a verified connection via Nabu Casa. The problem appears to be a caching failure on the Google side.


Configuration and Setup

I have built a custom VLC music player system. The setup is verified working:

  1. HA Logic is Sound: I use “wrapper scripts” (e.g., script.google_spela_shine) to hardcode playlist variables, which then call a main logic script (script.spela_spellista).
  2. System Bridge: The scripts successfully trigger a Node-RED/MQTT bridge, and the music starts when the script is called manually in Home Assistant.
  3. Exposure: All necessary scripts are explicitly exposed to Google Assistant via the Nabu Casa integration settings.

Troubleshooting Performed (Crucial for Diagnosis)

All underlying Home Assistant/MQTT logic is confirmed to be operational. The error is purely within the Google Assistant service layer.

  1. HA Script Works: Calling the script (script.google_spela_shine) manually via Developer Tools works perfectly and plays the music.
  2. Link Verification: The verbal command “Hey Google, sync my devices” results in the confirmation “Syncing devices from Nabu Casa,” confirming the bridge is active.
  3. Failure Symptom (NLU Rejection): When attempting to run the simplest, most direct command:
  • Command: “Hey Google, activate Google Spela Shine.”
  • Result: Google Assistant replies “I don’t understand” or plays generic music, indicating a failure to match the voice command to the exposed script name.
  1. Cache Reset Attempts: I have performed a full unlink and relink of the Nabu Casa service to clear the Google Home app cache.

Question for the Community

Given that the HA configuration is correct, but Google’s NLU engine is rejecting the simple, exposed script names:

  1. Is this a known caching issue with the current Google Assistant integration?
  2. Is there a specific service call or terminal command (e.g., via Google Cloud Console, not the voice command) that can force a deep NLU cache reset to make the script names visible?

Thank you for any insight you can provide!

Hello Anders,
Try a different name, at least for testing. For instance call it ‘george’ as an alias, see if it picks it up. I’ve tried this with some things and it didn’t look in my instance first, it would guess that it was a search term and give me music or whatever.
If that works, then you know it’s a matter of tweaking the alias.