Skip to content

Fix attribute error on network outage - #453

Merged
Danielhiversen merged 1 commit into
Danielhiversen:masterfrom
MartinHjelmare:fix-attribute-error-on-network-outage
Aug 22, 2026
Merged

Fix attribute error on network outage#453
Danielhiversen merged 1 commit into
Danielhiversen:masterfrom
MartinHjelmare:fix-attribute-error-on-network-outage

Conversation

@MartinHjelmare

@MartinHjelmare MartinHjelmare commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Since the connection may not be finished when connect_async returns, wait for the connected event before subscribing.

Fixes the following stack trace:

Error in subscription
Traceback (most recent call last):
  File "/usr/local/lib/python3.14/site-packages/tibber/home.py", line 456, in _start_listen
    async for _data in self._tibber_control.realtime.subscribe(
    ...<5 lines>...
        self._handle_subscription_data(_data)
  File "/usr/local/lib/python3.14/site-packages/tibber/realtime.py", line 176, in subscribe
    async for result in self._session.subscribe(request):
        yield result
  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 2071, in _subscribe
    async for result in inner_generator:
        yield result
  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 281, in subscribe
    query_id: int = await self._send_query(
                    ^^^^^^^^^^^^^^^^^^^^^^^
        request,
        ^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.14/site-packages/gql/transport/websockets_protocol.py", line 244, in _send_query
    if self.subprotocol == self.GRAPHQLWS_SUBPROTOCOL:
       ^^^^^^^^^^^^^^^^
AttributeError: 'TibberWebsocketsTransport' object has no attribute 'subprotocol'

Comment thread test/test_realtime.py

# Simulate the handshake completing (as _after_connect does after reconnect succeeds).
tibber_rt._tibber_connected.set() # noqa: SLF001
await task
@Danielhiversen
Danielhiversen merged commit 7612d3e into Danielhiversen:master Aug 22, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants