Skip to content

Tibber integration stops working after brief internet interruption #168480

Description

@abremora

The problem

Every time there’s an internet interruption, my tibber integration stops working. All sensors remain stuck at their last recorded value. After restarting the integration, the values are retrieved again. My internet provider forces a disconnection at least once a day. On some days, I experience multiple interruptions.
I completely reinstalled Home Assistant with version 2026.4.1 (no data import) and have observed the same problem in 2026.4.2 and 2026.4.3.

Logger: tibber.home
Quelle: /usr/local/lib/python3.14/site-packages/tibber/home.py:460
Erstmals aufgetreten: 01:57:15 (1 Vorkommnis)
Zuletzt protokolliert: 01:57:15

Error in rt_subscribe
Traceback (most recent call last):
  File "/usr/local/lib/python3.14/site-packages/tibber/home.py", line 443, in _start
    async for _data in session.subscribe(
    ...<14 lines>...
            return
  File "/usr/local/lib/python3.14/site-packages/gql/client.py", line 1426, in subscribe
    async for result in inner_generator:
    ...<13 lines>...
                yield result.data
  File "/usr/local/lib/python3.14/site-packages/gql/client.py", line 1337, in _subscribe
    async for result in inner_generator:
    ...<11 lines>...
        yield result
  File "/usr/local/lib/python3.14/site-packages/gql/transport/common/base.py", line 298, in subscribe
    answer_type, execution_result = await listener.get()
                                    ^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.14/site-packages/gql/transport/common/listener_queue.py", line 35, in get
    raise item
gql.transport.exceptions.TransportServerError: No pong received after 15.0 seconds
Logger: tibber.realtime
Quelle: runner.py:289
Erstmals aufgetreten: 01:57:17 (106 Vorkommnisse)
Zuletzt protokolliert: 09:50:38

Watchdog: Connection is down, 2026-04-18 07:30:27.822147+00:00
Watchdog: Connection is down, 2026-04-18 07:35:32.981688+00:00
Watchdog: Connection is down, 2026-04-18 07:40:38.157042+00:00
Watchdog: Connection is down, 2026-04-18 07:45:43.323766+00:00
Watchdog: Connection is down, 2026-04-18 07:50:48.504349+00:00
Logger: tibber.realtime
Quelle: /usr/local/lib/python3.14/site-packages/tibber/realtime.py:198
Erstmals aufgetreten: 01:57:48 (104 Vorkommnisse)
Zuletzt protokolliert: 09:50:38

Error in watchdog connect, retrying in 300 seconds, 101: Error trying to receive data: ConnectionClosedError
Error in watchdog connect, retrying in 300 seconds, 102: Error trying to receive data: ConnectionClosedError
Error in watchdog connect, retrying in 300 seconds, 103: Error trying to receive data: ConnectionClosedError
Error in watchdog connect, retrying in 300 seconds, 104: Error trying to receive data: ConnectionClosedError
Error in watchdog connect, retrying in 300 seconds, 105: Error trying to receive data: ConnectionClosedError
Traceback (most recent call last):
  File "/usr/local/lib/python3.14/site-packages/gql/transport/common/adapters/websockets.py", line 114, in receive
    data = await self.websocket.recv()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.14/site-packages/websockets/asyncio/connection.py", line 322, in recv
    raise self.protocol.close_exc from self.recv_exc
websockets.exceptions.ConnectionClosedError: received 4403 (private use) Invalid token; then sent 4403 (private use) Invalid token

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

Traceback (most recent call last):
  File "/usr/local/lib/python3.14/site-packages/tibber/realtime.py", line 190, in _watchdog
    self.session = await self.sub_manager.connect_async()
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.14/site-packages/gql/client.py", line 782, in connect_async
    await self.session.connect()
  File "/usr/local/lib/python3.14/site-packages/gql/client.py", line 1851, in connect
    raise e
  File "/usr/local/lib/python3.14/site-packages/gql/client.py", line 1848, in connect
    await self.transport.connect()
  File "/usr/local/lib/python3.14/site-packages/gql/transport/common/base.py", line 402, in connect
    raise e
  File "/usr/local/lib/python3.14/site-packages/gql/transport/common/base.py", line 400, in connect
    await self._initialize()
  File "/usr/local/lib/python3.14/site-packages/gql/transport/websockets_protocol.py", line 156, in _initialize
    await self._send_init_message_and_wait_ack()
  File "/usr/local/lib/python3.14/site-packages/gql/transport/websockets_protocol.py", line 153, in _send_init_message_and_wait_ack
    await asyncio.wait_for(self._wait_ack(), self.ack_timeout)
  File "/usr/local/lib/python3.14/asyncio/tasks.py", line 488, in wait_for
    return await fut
           ^^^^^^^^^
  File "/usr/local/lib/python3.14/site-packages/gql/transport/websockets_protocol.py", line 128, in _wait_ack
    init_answer = await self._receive()
                  ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.14/site-packages/tibber/websocket_transport.py", line 49, in _receive
    msg = await asyncio.wait_for(super()._receive(), timeout=self._timeout)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.14/asyncio/tasks.py", line 488, in wait_for
    return await fut
           ^^^^^^^^^
  File "/usr/local/lib/python3.14/site-packages/gql/transport/common/base.py", line 153, in _receive
    answer: str = await self.adapter.receive()
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.14/site-packages/gql/transport/common/adapters/websockets.py", line 116, in receive
    raise TransportConnectionFailed(
        f"Error trying to receive data: {type(e).__name__}"
    ) from e
gql.transport.exceptions.TransportConnectionFailed: Error trying to receive data: ConnectionClosedError

Logs from my modem

04/18/26    01:56:55    Internet connection established successfully. IPv4 is being used via DS-Lite. AFTR gateway: XXXXXX.de, IPv4 MTU: 1500, Broadband PoP: XXXXXX, LineID: XXXXXXX   
04/18/26    01:56:55    IPv6 prefix successfully obtained. New prefix: XXXXXXXX	
04/18/26    01:56:55    IPv6 Internet connection successfully established. IP address: XXXXXXX    
04/18/26    01:56:52    Internet connection disconnected.	
04/18/26    01:56:52    IPv6 internet connection disconnected, prefix no longer valid.    
04/18/26    01:56:52    The internet connection is being briefly interrupted to preempt forced disconnection by the provider.
Image

What version of Home Assistant Core has the issue?

core-2026.4.3

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant Container

Integration causing the issue

Tibber

Link to integration documentation on our website

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

Diagnostics information

No response

Example YAML snippet

Anything in the logs that might be useful for us?

Additional information

Another issue is described in #168007. The recommendation was to create a new ticket.

Metadata

Metadata

Type

No type

Fields

Priority

None yet

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions