core icon indicating copy to clipboard operation
core copied to clipboard

Tado integration fails Outh (Tado V2, succesful tado website login) - timeout issue?

Open Geekerbyname opened this issue 7 months ago • 25 comments

The problem

Tado integration suddenly gives me an Authentication Expire error and prompts me to re-auth. It takes me to the Tado website with the correct auth code, and I am successful in that part. The integration immediately gives me an 'Authentication timed out' error then an 'unknown error'

Subsequent attempts to auth give the same timeout error and I need to reload the Integration before attempting again

I have deleted all Tado cookies and cache in the browser, signed out and logged again

What version of Home Assistant Core has the issue?

core-2025.5.3

What was the last working version of Home Assistant Core?

core-2025.5.3

What type of installation are you running?

Home Assistant Container

Integration causing the issue

Tado

Link to integration documentation on our website

https://www.home-assistant.io/integrations/tado/

Diagnostics information

No response

Example YAML snippet


Anything in the logs that might be useful for us?

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/tado/config_flow.py", line 82, in _wait_for_login
    await self.hass.async_add_executor_job(self.tado.device_activation)
  File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 59, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.13/site-packages/PyTado/interface/interface.py", line 99, in device_activation
    self._http.device_activation()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/local/lib/python3.13/site-packages/PyTado/http.py", line 560, in device_activation
    if self._check_device_activation():
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/local/lib/python3.13/site-packages/PyTado/http.py", line 524, in _check_device_activation
    raise TadoException("User took too long to enter key")
PyTado.exceptions.TadoException: User took too long to enter key
2025-06-07 10:32:12.277 WARNING (MainThread) [homeassistant.config_entries] Config entry 'Home' for tado integration could not authenticate: Device login flow status>
2025-06-07 10:32:38.859 ERROR (MainThread) [homeassistant.components.tado.config_flow] Error while waiting for device activation
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/tado/config_flow.py", line 82, in _wait_for_login
    await self.hass.async_add_executor_job(self.tado.device_activation)
  File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 59, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.13/site-packages/PyTado/interface/interface.py", line 99, in device_activation
    self._http.device_activation()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/local/lib/python3.13/site-packages/PyTado/http.py", line 563, in device_activation
    self._device_ready()
    ~~~~~~~~~~~~~~~~~~^^
  File "/usr/local/lib/python3.13/site-packages/PyTado/http.py", line 567, in _device_ready
    self._id = self._get_id()
               ~~~~~~~~~~~~^^
  File "/usr/local/lib/python3.13/site-packages/PyTado/http.py", line 578, in _get_id
    homes_ = self.request(request)["homes"]
             ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
KeyError: 'homes'

Additional information

Image Image

Geekerbyname avatar Jun 07 '25 10:06 Geekerbyname

Hey there @erwindouna, mind taking a look at this issue as it has been labeled with an integration (tado) you are listed as a code owner for? Thanks!

Code owner commands

Code owners of tado can trigger bot actions by commenting:

  • @home-assistant close Closes the issue.
  • @home-assistant rename Awesome new title Renames the issue.
  • @home-assistant reopen Reopen the issue.
  • @home-assistant unassign tado Removes the current integration label and assignees on the issue, add the integration domain after the command.
  • @home-assistant add-label needs-more-information Add a label (needs-more-information, problem in dependency, problem in custom component) to the issue.
  • @home-assistant remove-label needs-more-information Remove a label (needs-more-information, problem in dependency, problem in custom component) on the issue.

(message by CodeOwnersMention)


tado documentation tado source (message by IssueLinks)

home-assistant[bot] avatar Jun 07 '25 10:06 home-assistant[bot]

Same here since yesterday and i find out that IOBroker has the same problem !!

i tested a little bit more.

The same problem also occurs if you log out once with the manufacturer tado app and try to log in again. It seems that tado has a server problem. or if you try the function ‘let display flash’, an authorisation error also occurs.

cracyfloyd avatar Jun 07 '25 10:06 cracyfloyd

Interesting - it did feel like a server issue initially. But I found no status showing issues anywhere. On the other hand, I've seen some big issues around the net over the last few days - particularly Microsoft's servers/services being very slow. Hopefully just a waiting game ...

Geekerbyname avatar Jun 08 '25 12:06 Geekerbyname

i ma seeing the same issue - tried reboot of HA. Login/.out of tado site. when i return from the website i get:

Image

even when the authentication on the web is successful

aberkeley avatar Jun 08 '25 13:06 aberkeley

i ma seeing the same issue - tried reboot of HA. Login/.out of tado site. when i return from the website i get:

Image

even when the authentication on the web is successful

Also seeing this behaviour.

JXGA avatar Jun 08 '25 17:06 JXGA

I concur - same issue with my Home Assistant / Tado integration. Ive also tried some of the same solutions as previous commenters above to no avail. HA 2025.5.3 with latest Tado integration.

1967maverick avatar Jun 09 '25 07:06 1967maverick

i was able to fix the error. luckily i had a second assigned account. with this account i deleted my account and created it again and lo and behold everything works again.

cracyfloyd avatar Jun 09 '25 09:06 cracyfloyd

i ma seeing the same issue - tried reboot of HA. Login/.out of tado site. when i return from the website i get: even when the authentication on the web is successful

The integration checks every 5 seconds for a result at Tado's servers. It will timeout, if within five minutes no results for the login are available. Normally should should be rather instant in terms of user experience. I'll check with Tado if there were any hick-ups on their end or that I should continue the troubleshooting within Home Assistent.

erwindouna avatar Jun 10 '25 07:06 erwindouna

I have raised a case with Tado, which has now been escalated. Browser connection is fine (app.tado.com) But the Tado App on both iOS and Android gets an error (attached).

I think the issue we are seeing in HA and the issue I am seeing in the mobile Apps is linked. My guess right now ( no facts to back up this hunch) is that since Tado changed its authentication a couple of months ago, if using the HA Tado integration, you have to re authenticated after every HA restart. Perhaps Tado have been counting the re-authentications, and now our HA installs / Tado accounts have hit a max value and Tado has locked us out when using the authentication method that HA AND the mobile Apps use. @cracyfloyd - if my guess has merit, perhaps your action of delete / recreate your account reset this mystery counter back to zero.

Anyway - Tado engineer is looking into my case. He asked me to confirm my account email - perhaps he will do a reset of the counter for me:-)

Image

1967maverick avatar Jun 10 '25 09:06 1967maverick

I'm unable to invite another user from either the Tado Web site or the Mobile App. Or delete a user. I'm not sure if this is just awful design or a backend issue. My Guess is it's also some back end Tado Auth issue

Geekerbyname avatar Jun 10 '25 09:06 Geekerbyname

Same here @Geekerbyname . Cannot add / delete any linked users. I too guess same related issue.

1967maverick avatar Jun 10 '25 10:06 1967maverick

UPDATE: reply from Tado engineer:

“ The developers are aware of the issue, and they are working on the solution. Sorry for any inconvenience. We will inform you as soon as we have an update.“

So looks like they are working on a fix!!

1967maverick avatar Jun 10 '25 10:06 1967maverick

Good news - thanks @1967maverick

Geekerbyname avatar Jun 10 '25 10:06 Geekerbyname

Further feedback from the Tado engineer: "Yes, they are on it; it seems a global issue. I'll let you know once I know more"

1967maverick avatar Jun 10 '25 12:06 1967maverick

The problem should be fixed, if not please reply here. This was a synchronization issue between the multiple layers and caches that handle authentication. It affected only a very small number of tado users (far below 1%) and only affected homes created a long time ago, so unfortunately this took most of the day to track down.

Thanks to Erwin for escalating this to me this morning!

(edit: removed the statement that this was limited "V3+", this was based on an assumption that did not hold true.)

kapet avatar Jun 10 '25 16:06 kapet

I confirm both App and Home Assistant issues resolved. Yes I replaced my system with V3+ last year but I had my original system / account for 10 years, so the obscured logic applies to me! 😃

1967maverick avatar Jun 10 '25 16:06 1967maverick

Works again! thanks :D

holymountain92 avatar Jun 10 '25 17:06 holymountain92

Unfortunately, still not fixed for me :( Image

Tuffert avatar Jun 10 '25 18:06 Tuffert

Working for me now too. I've had the system almost since launch I think.

Geekerbyname avatar Jun 10 '25 18:06 Geekerbyname

@Tuffert - dropped you an email, to the address in your tado account.

kapet avatar Jun 11 '25 12:06 kapet

Still not working for me :(

Do I need to do anything in HA or Tado app to fix this?

JoniSykes avatar Jun 12 '25 13:06 JoniSykes

Still not working for me :(

Do I need to do anything in HA or Tado app to fix this?

Have you tried a reboot of HA? Solved it for me.

JXGA avatar Jun 12 '25 14:06 JXGA

Same Problem, still not working for me.

Uritec avatar Jun 12 '25 20:06 Uritec

I had to reboot my HA yesterday and since then Tado won't connect, keeps timing out. Tried reentering password but just times out. I am on an old version of HA 2024.7.2. Pleqase help

Thanks

ITGuruWoo avatar Jun 15 '25 11:06 ITGuruWoo

I had to reboot my HA yesterday and since then Tado won't connect, keeps timing out. Tried reentering password but just times out. I am on an old version of HA 2024.7.2. Pleqase help

Thanks

Update to the latest Home Assistant version. In the main time Tado has switched it's authentication methods and the latest versions of Home Assistant contain the new methods. :)

erwindouna avatar Jun 15 '25 14:06 erwindouna

My issue is similar but different. I get the authentification bug from time to time. Meaning I'm being asked to re-authenticate, which works as expected. But then, after some days, or HA restarts, I'm being asked again, to re-authenticate. Doing so, works again. And that's the process at least 2-3 per month.

bangboomben avatar Jun 23 '25 16:06 bangboomben

I am also having issue with authentiction to Tado. I am running HA 2025.6.3. When I authenticate with Tado, I get a green tick in tado, success message in HA, but in a few seconds, the integration says it needs to authenticate. The logs contain various errors:

Logger: homeassistant.components.tado.coordinator
Source: helpers/update_coordinator.py:382
integration: Tado ([documentation](https://www.home-assistant.io/integrations/tado), [issues](https://github.com/home-assistant/core/issues?q=is%3Aissue+is%3Aopen+label%3A%22integration%3A+tado%22))
First occurred: 8:06:07 AM (5 occurrences)
Last logged: 11:29:25 AM

Unexpected error fetching tado data
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 382, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/tado/coordinator.py", line 101, in _async_update_data
    devices = await self._async_update_devices()
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/tado/coordinator.py", line 137, in _async_update_devices
    return await self.hass.async_add_executor_job(self._update_device_info, devices)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 59, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/src/homeassistant/homeassistant/components/tado/coordinator.py", line 143, in _update_device_info
    device_short_serial_no = device["shortSerialNo"]
                             ~~~~~~^^^^^^^^^^^^^^^^^
KeyError: 'shortSerialNo'
Logger: aiohttp.server
Source: /usr/local/lib/python3.13/site-packages/aiohttp/web_protocol.py:481
First occurred: 8:03:19 AM (3 occurrences)
Last logged: 8:04:42 AM

Error handling request from 172.30.33.0
Traceback (most recent call last):
  File "/usr/local/lib/python3.13/site-packages/aiohttp/web_protocol.py", line 510, in _handle_request
    resp = await request_handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/aiohttp/web_app.py", line 569, in _handle
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/aiohttp/web_middlewares.py", line 117, in impl
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 92, in security_filter_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 210, in forwarded_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 26, in request_context_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 86, in ban_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 242, in auth_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/headers.py", line 41, in headers_middleware
    response = await handler(request)
               ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/http.py", line 73, in handle
    result = await handler(request, **request.match_info)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/decorators.py", line 83, in with_admin
    return await func(self, request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 227, in post
    return await super().post(request, flow_id)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 74, in wrapper
    return await method(view, request, data, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 121, in post
    result = await self._flow_mgr.async_configure(flow_id, data)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 336, in async_configure
    result = await self._async_configure(flow_id, user_input)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 383, in _async_configure
    result = await self._async_handle_step(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        flow, cur_step["step_id"], user_input
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 487, in _async_handle_step
    result: _FlowResultT = await getattr(flow, method)(user_input)
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/tado/config_flow.py", line 158, in async_step_timeout
    return await self.async_step_user()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/tado/config_flow.py", line 111, in async_step_user
    "url": tado_device_url,
           ^^^^^^^^^^^^^^^
UnboundLocalError: cannot access local variable 'tado_device_url' where it is not associated with a value
Logger: homeassistant
Source: components/tado/config_flow.py:85
First occurred: 8:03:20 AM (2 occurrences)
Last logged: 8:04:42 AM

Error doing job: Task exception was never retrieved (None)
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/tado/config_flow.py", line 82, in _wait_for_login
    await self.hass.async_add_executor_job(self.tado.device_activation)
  File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 59, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.13/site-packages/PyTado/interface/interface.py", line 103, in device_activation
    self._http.device_activation()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/local/lib/python3.13/site-packages/PyTado/http.py", line 564, in device_activation
    if self._check_device_activation():
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/local/lib/python3.13/site-packages/PyTado/http.py", line 528, in _check_device_activation
    raise TadoException("User took too long to enter key")
PyTado.exceptions.TadoException: User took too long to enter key

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

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/tado/config_flow.py", line 85, in _wait_for_login
    raise CannotConnect from ex
homeassistant.components.tado.config_flow.CannotConnect

jakubklimek avatar Jun 26 '25 09:06 jakubklimek

@jakubklimek the shortSerialNo indicates you're using Tado X. Is my assumption right? If so, then please be noted that the Tado integration does not (yet) support Tado X.

erwindouna avatar Jun 26 '25 14:06 erwindouna

@erwindouna Yes, Tado X. Ahh, ok, I was under the impression that the support for Tado X was already added. My mistake then.

jakubklimek avatar Jun 26 '25 14:06 jakubklimek

This problem has been going on for a long time. Is there anything more known about a solution and when? I have tried the Homekit integration, but then you miss a number of control options. I do not use the X version of Tado. Thanks in advance

willsmarthome avatar Jul 04 '25 07:07 willsmarthome