home-assistant/core · error · UpdateFailed

update_failed

update_failed

Error message

An error occurred while updating from the Advantage Air API: {error}

What it means

UpdateFailed with translation_key update_failed, raised by AdvantageAirCoordinator._async_update_data when self.api.async_get() raises the library's ApiError. It is the coordinator's single failure path for any HTTP/API problem during a scheduled refresh; the placeholders carry str(err) so the UI/log shows the library's specific reason.

Source

Thrown at homeassistant/components/advantage_air/coordinator.py:54

        super().__init__(
            hass,
            _LOGGER,
            config_entry=config_entry,
            name="Advantage Air",
            update_interval=timedelta(seconds=ADVANTAGE_AIR_SYNC_INTERVAL),
            request_refresh_debouncer=Debouncer(
                hass, _LOGGER, cooldown=REQUEST_REFRESH_DELAY, immediate=False
            ),
        )
        self.api = api

    @override
    async def _async_update_data(self) -> dict[str, Any]:
        """Fetch data from the API."""
        try:
            return await self.api.async_get()
        except ApiError as err:
            raise UpdateFailed(
                translation_domain=DOMAIN,
                translation_key="update_failed",
                translation_placeholders={"error": str(err)},
            ) from err

View on GitHub (pinned to 58a3fdb3ea)

Solutions

  1. Ping / open the controller's local web interface to confirm it is reachable at the configured host.
  2. Check the full log line — the {error} placeholder contains the library's reason (timeout, status code, parse failure).
  3. Restart or power-cycle the Advantage Air controller if its web API is wedged (common after firmware updates).
  4. Verify the config entry host/port and scheme (http vs https with self-signed cert) match the controller.
  5. Wait for the next poll interval; transient failures self-correct via the coordinator's retry, with debounced refresh on demand.
Defensive patterns

Strategy: retry

Type guard

def advantage_air_ok(coordinator) -> bool:
    """Coordinator reports healthy last refresh."""
    return coordinator.last_update_success

Try / catch

from homeassistant.exceptions import UpdateFailed

try:
    await coordinator.async_config_entry_first_refresh()
except UpdateFailed as err:
    # {error} placeholder carries the ApiError text
    _LOGGER.warning("Advantage Air refresh failed: %s", err)

Prevention

When it happens

Trigger: Every coordinator poll where async_get() fails: Advantage Air controller (e.g. Advantage Air / Braemar / Bonaire unit) unreachable on the LAN, HTTP 5xx from the controller's local web API, or a malformed/unexpected response body the library rejects.

Common situations: Controller rebooted or firmware updated, static IP changed, Wi-Fi drop between HA and the air conditioning controller, or the controller's concurrent-request limit hit by other clients.

Related errors


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