AppleTV integration issues

Hi All,

It’s a known issue on Github. But wondering how many people have this issue also…

On AppleTV you see many popups that it can’t connect AirPlay etc…
This issue is going on for a while already…


2025-03-12 15:24:00.577 ERROR (MainThread) [homeassistant.components.apple_tv] Failed to connect
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/apple_tv/__init__.py", line 223, in connect_once
    await self._connect_once(raise_missing_credentials)
  File "/usr/src/homeassistant/homeassistant/components/apple_tv/__init__.py", line 208, in _connect_once
    await self._connect(conf, raise_missing_credentials)
  File "/usr/src/homeassistant/homeassistant/components/apple_tv/__init__.py", line 327, in _connect
    self.atv = await connect(conf, self.hass.loop, session=session)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/pyatv/__init__.py", line 155, in connect
    await atv.connect()
  File "/usr/local/lib/python3.13/site-packages/pyatv/core/facade.py", line 723, in connect
    if await setup_data.connect():
       ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/pyatv/protocols/companion/__init__.py", line 661, in _connect
    await api.connect()
  File "/usr/local/lib/python3.13/site-packages/pyatv/protocols/companion/api.py", line 151, in connect
    await self._protocol.start()
  File "/usr/local/lib/python3.13/site-packages/pyatv/protocols/companion/protocol.py", line 100, in start
    await self.connection.connect()
  File "/usr/local/lib/python3.13/site-packages/pyatv/protocols/companion/connection.py", line 81, in connect
    await self.loop.create_connection(lambda: self, self.host, self.port)
  File "/usr/local/lib/python3.13/asyncio/base_events.py", line 1166, in create_connection
    raise exceptions[0]
  File "/usr/local/lib/python3.13/asyncio/base_events.py", line 1141, in create_connection
    sock = await self._connect_sock(
           ^^^^^^^^^^^^^^^^^^^^^^^^^
        exceptions, addrinfo, laddr_infos)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/asyncio/base_events.py", line 1044, in _connect_sock
    await self.sock_connect(sock, address)
  File "/usr/local/lib/python3.13/asyncio/selector_events.py", line 641, in sock_connect
    return await fut
           ^^^^^^^^^
  File "/usr/local/lib/python3.13/asyncio/selector_events.py", line 681, in _sock_connect_cb
    raise OSError(err, f'Connect call failed {address}')
ConnectionRefusedError: [Errno 111] Connect call failed ('192.168.100.14', 53608)
2025-03-12 15:24:15.593 ERROR (MainThread) [pyatv.protocols.airplay] Failed to set up remote control channel
Traceback (most recent call last):
  File "/usr/local/lib/python3.13/site-packages/pyatv/protocols/airplay/__init__.py", line 347, in _connect_rc
    await session.connect()
  File "/usr/local/lib/python3.13/site-packages/pyatv/protocols/airplay/ap2_session.py", line 70, in connect
    self.connection = await http_connect(self._address, self._control_port)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/pyatv/support/http.py", line 654, in http_connect
    _, connection = await loop.create_connection(HttpConnection, address, port)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/asyncio/base_events.py", line 1166, in create_connection
    raise exceptions[0]
  File "/usr/local/lib/python3.13/asyncio/base_events.py", line 1141, in create_connection
    sock = await self._connect_sock(
           ^^^^^^^^^^^^^^^^^^^^^^^^^
        exceptions, addrinfo, laddr_infos)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/asyncio/base_events.py", line 1044, in _connect_sock
    await self.sock_connect(sock, address)
  File "/usr/local/lib/python3.13/asyncio/selector_events.py", line 641, in sock_connect
    return await fut
           ^^^^^^^^^
  File "/usr/local/lib/python3.13/asyncio/selector_events.py", line 681, in _sock_connect_cb
    raise OSError(err, f'Connect call failed {address}')
ConnectionRefusedError: [Errno 111] Connect call failed ('192.168.100.14', 7000)
2025-03-12 15:52:20.110 ERROR (MainThread) [pyatv.protocols.airplay] Failed to set up remote control channel
Traceback (most recent call last):
  File "/usr/local/lib/python3.13/site-packages/pyatv/protocols/airplay/__init__.py", line 347, in _connect_rc
    await session.connect()
  File "/usr/local/lib/python3.13/site-packages/pyatv/protocols/airplay/ap2_session.py", line 71, in connect
    self.verifier = await verify_connection(self._credentials, self.connection)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/pyatv/protocols/airplay/auth/__init__.py", line 105, in verify_connection
    has_encryption_keys = await verifier.verify_credentials()
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/pyatv/protocols/airplay/auth/hap.py", line 116, in verify_credentials
    resp = await self._send(
           ^^^^^^^^^^^^^^^^^
    ...<4 lines>...
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/pyatv/protocols/airplay/auth/hap.py", line 143, in _send
    return await self.http.post(
           ^^^^^^^^^^^^^^^^^^^^^
        "/pair-verify", body=hap_tlv8.write_tlv(data), headers=headers
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/pyatv/support/http.py", line 433, in post
    return await self.send_and_receive(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        "POST", path, headers=headers, body=body, allow_error=allow_error
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/pyatv/support/http.py", line 467, in send_and_receive
    raise exceptions.ConnectionLostError("connection was lost")
pyatv.exceptions.ConnectionLostError: connection was lost
2025-03-12 15:52:20.118 ERROR (MainThread) [homeassistant.components.apple_tv] Failed to connect
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/apple_tv/__init__.py", line 223, in connect_once
    await self._connect_once(raise_missing_credentials)
  File "/usr/src/homeassistant/homeassistant/components/apple_tv/__init__.py", line 208, in _connect_once
    await self._connect(conf, raise_missing_credentials)
  File "/usr/src/homeassistant/homeassistant/components/apple_tv/__init__.py", line 327, in _connect
    self.atv = await connect(conf, self.hass.loop, session=session)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/pyatv/__init__.py", line 155, in connect
    await atv.connect()
  File "/usr/local/lib/python3.13/site-packages/pyatv/core/facade.py", line 723, in connect
    if await setup_data.connect():
       ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/pyatv/protocols/companion/__init__.py", line 661, in _connect
    await api.connect()
  File "/usr/local/lib/python3.13/site-packages/pyatv/protocols/companion/api.py", line 151, in connect
    await self._protocol.start()
  File "/usr/local/lib/python3.13/site-packages/pyatv/protocols/companion/protocol.py", line 100, in start
    await self.connection.connect()
  File "/usr/local/lib/python3.13/site-packages/pyatv/protocols/companion/connection.py", line 81, in connect
    await self.loop.create_connection(lambda: self, self.host, self.port)
  File "/usr/local/lib/python3.13/asyncio/base_events.py", line 1166, in create_connection
    raise exceptions[0]
  File "/usr/local/lib/python3.13/asyncio/base_events.py", line 1141, in create_connection
    sock = await self._connect_sock(
           ^^^^^^^^^^^^^^^^^^^^^^^^^
        exceptions, addrinfo, laddr_infos)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/asyncio/base_events.py", line 1044, in _connect_sock
    await self.sock_connect(sock, address)
  File "/usr/local/lib/python3.13/asyncio/selector_events.py", line 641, in sock_connect
    return await fut
           ^^^^^^^^^
  File "/usr/local/lib/python3.13/asyncio/selector_events.py", line 681, in _sock_connect_cb
    raise OSError(err, f'Connect call failed {address}')