home-assistant/core · warning · ConfigEntryNotReady

{address}: {ex}

Error message

{address}: {ex}

What it means

ConfigEntryNotReady raised during apple_tv setup when the first connection times out (CONNECTION_TIMEOUT_EXCEPTIONS from pyatv). HA marks the entry as setup-failed-but-retryable and backs off exponentially; the integration will try again automatically rather than requiring user action.

Solutions

  1. Wake the Apple TV (send any Remote command or wake it physically) and reload the integration
  2. Check network path: same VLAN preferred, ensure ports 3689 (MAP), 49152+/3200 (AirPlay/RAOP) and mDNS (5353) are not blocked
  3. Verify reachability with 'atvremote --scan' from the HA host, then reload the entry
Defensive patterns

Strategy: retry

Prevention

When it happens

Trigger: manager.async_first_connect() raising pyatv connection timeout exceptions: device asleep/powered off, network slow or lossy, Apple TV on a different subnet/VLAN that drops mDNS or the protocol ports, or device temporarily unreachable during setup.

Common situations: Apple TV in deep sleep when HA restarts; Wi-Fi roaming or mesh backhaul instability; IGMP/mDNS filtering on managed switches; device rebooting during an HA upgrade.

Related errors


AI-assisted analysis of home-assistant/core@58a3fdb3ea (2026-08-14). Data as JSON: /api/errors/11979592ae922396. Report an issue: GitHub.

Appendix: source

Thrown at homeassistant/components/apple_tv/__init__.py:102

    async_setup_services(hass)
    return True


async def async_setup_entry(hass: HomeAssistant, entry: AppleTvConfigEntry) -> bool:
    """Set up a config entry for Apple TV."""
    manager = AppleTVManager(hass, entry)

    if manager.is_on:
        address = entry.data[CONF_ADDRESS]

        try:
            await manager.async_first_connect()
        except AUTH_EXCEPTIONS as ex:
            raise ConfigEntryAuthFailed(
                f"{address}: Authentication failed, try reconfiguring device: {ex}"
            ) from ex
        except CONNECTION_TIMEOUT_EXCEPTIONS as ex:
            raise ConfigEntryNotReady(f"{address}: {ex}") from ex
        except DEVICE_EXCEPTIONS as ex:
            _LOGGER.debug(
                "Error setting up apple_tv at %s: %s", address, ex, exc_info=ex
            )
            raise ConfigEntryNotReady(f"{address}: {ex}") from ex

    entry.runtime_data = manager

    async def on_hass_stop(event: Event) -> None:
        """Stop push updates when hass stops."""
        await manager.disconnect()

    entry.async_on_unload(
        hass.bus.async_listen_once(EVENT_HOMEASSISTANT_STOP, on_hass_stop)
    )
    entry.async_on_unload(manager.disconnect)

    await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)

View on GitHub (pinned to 58a3fdb3ea)