Google Assistant works, but says "I cannot reach my test app"

Hey Everyone,

I was just curious if anyone knows how to troubleshoot this issue. I have configured the google assistant integration, as well as device sync for home assistant according to the documentation in the HA wiki. I use an nginx reverse proxy to expose HA to the internet with an SSL certificate. Sometimes (about 20% of the time) when I issue a command to my google home device like “turn off the bedroom TV”, it will perform the action successfully (bedroom TV will turn off) but then the google home will say, sorry I couldn’t reach my test app.

I have looked on the google actions console for any sort of logging I can find that would help me better narrow down the problem, but I cannot seem to find any logging from voice commands to HA.

Any help in narrowing this down would be greatly appreciated.

Does anyone else use Hass behind an NginX proxy?

I’ve got the same issue… Usually only happens if I haven’t issued a command in a while from Google home to HA.

Hi, I have the same issue. Google assistant integration works fine, but sometimes after a command GA says “sorry, cannot reach app”.
I do not have a reverse proxy. Any clues will be appreciated.

Oh god - I get this all the bloody time… It drives me nuts… I haven’t been able to control my lights all night…

same problem here. intergration works but GA says sorry cannot reach myapp. I dont have a proxy.

Same. Happens every now and then

I have the same issue. Worked at first but no more.

THIS IS A WARNING on the HA forum

To use Google Assistant, your Home Assistant configuration has to be externally accessible with a hostname and SSL certificate. If you haven’t already configured that, you should do so before continuing. If you make DNS changes to accomplish this, please ensure you have allowed up to the full 48 hours for DNS changes to propagate, otherwise Google may not be able to reach your server.

I don´t get it. Can someone please explain where can we allow 48 hours for dns changes to propagate? Thanks in advance

Starting over worked for me

Hi Luis,

Is it still workingfor you?
I’m considering doing the same, but wont if the issue just comes back after x time.

First off I made sure that the Google Assistant integration was working properly. No 403 or 404 errors and warnings in the HA logs.

What I found was that of my scripts take a long time to complete and I got this issue only when executing these via my Assistant.

I got it working properly when I ensured that the scripts that were fired via a template switch did not take too long to complete.

It seems Google does not like to wait too long before saying that "sorry I couldn’t reach my ".

Made the following change to my on/off switch template:

- service: script.something

to

 - service: script.turn_on
   entity_id: script.something

This executes the script and continues without wafting for it to complete.

1 Like

Hi, yes. It is still working fine.

I find that mine was still hit or miss - it’d work about 50% of the time… Usually failing the first time, but working on a second try…

After a while, its just not worth doing anymore - so I replaced it with a few IFTTT commands… Not as good, but it works 95% of the time instead of being hit or miss…

How would one go about doing this if I have scenes that take too long? Would I make the Google Assistant config ignore scenes, and then make switches for them?

You can do something like this:

google_assistant:
  project_id: <>
  service_account: <>
  report_state: true
  expose_by_default: false
  entity_config:
    switch.scene1:
      name: Scene1
      expose: true

input_boolean:
  scene1:

switch:
  - platform: template
    switches:
      scene1:
        friendly_name: "Start Scene"
        value_template: "{{ is_state('input_boolean.scene1', 'on') }}"
        turn_on:
          - service: input_boolean.turn_on
            entity_id: input_boolean.scene1
          - delay: '00:00:01'
          - service: scene.turn_on
            entity_id: scene.something_on
        turn_off:
          - service: input_boolean.turn_off
            entity_id: input_boolean.scene1
          - delay: '00:00:01'
          - service: scene.turn_on
            entity_id: scene.something_off

Hmm, I gave that a shot, but still no luck. I still get the “is unavailable right now” message after the action occurs.

How about this:

(Or just expose the scripts)

google_assistant:
  project_id: <>
  service_account: <>
  report_state: true
  expose_by_default: false
  entity_config:
    switch.scene1:
      name: Scene1
      expose: true

input_boolean:
  scene1:

switch:
  - platform: template
    switches:
      scene1:
        friendly_name: "Start Scene"
        value_template: "{{ is_state('input_boolean.scene1', 'on') }}"
        turn_on:
          - service: input_boolean.turn_on
            entity_id: input_boolean.scene1
          - delay: '00:00:01'
          - service: script.turn_on
            entity_id: script.scene1_on
        turn_off:
          - service: input_boolean.turn_off
            entity_id: input_boolean.scene1
          - delay: '00:00:01'
          - service: script.turn_on
            entity_id: script.scene1_off

script:
  scene1_on:
    sequence:
      - service: scene.turn_on
        entity_id: scene.something_on
  scene1_off:
    sequence:
      - service: scene.turn_on
        entity_id: scene.something_off


I use switches exclusively because they can be used/accessed by anyone using Google Home. I have not been able to do that with scripts.

Hmm, it seems your Google Assistant is giving you a different response that I got when I had issues. Meaning my proposed solution(s) might not help.

This last method seems to do the trick. I believe the script is exiting instantly, and thus functioning. The only problem I have left is “turn off all lights” is reserved within Google Assistant, so I can’t assign an action to that phrase and since some lights are unavailable, the return time is too slow.

I think the only way to fix that is if an option was added to the Google Configuration to allow for “instant return” without waiting for a status.

This may not be the OP’s issue, but if anyone else experiences Google Assistant intermittently replying, “Sorry, I can’t reach the [home assistant] right now”: I strongly recommend enabling local fulfillment for Google Assistant. This will substantially lower the fulfillment failure rates especially if you are using DuckDNS for your remote HA access. As a bonus, the fulfillment latency will also decrease. The default is cloud fulfillment - Google Assistant accessing HA via your dynamic DNS solution.