{"record":{"id":"459a357aa334cc60","repo":"home-assistant/core","slug":"update-failed","errorCode":"update_failed","errorMessage":"An error occurred while updating from the Advantage Air API: {error}","messagePattern":"An error occurred while updating from the Advantage Air API: (.+?)","errorType":"exception","errorClass":"UpdateFailed","httpStatus":null,"severity":"error","filePath":"homeassistant/components/advantage_air/coordinator.py","lineNumber":54,"sourceCode":"        super().__init__(\n            hass,\n            _LOGGER,\n            config_entry=config_entry,\n            name=\"Advantage Air\",\n            update_interval=timedelta(seconds=ADVANTAGE_AIR_SYNC_INTERVAL),\n            request_refresh_debouncer=Debouncer(\n                hass, _LOGGER, cooldown=REQUEST_REFRESH_DELAY, immediate=False\n            ),\n        )\n        self.api = api\n\n    @override\n    async def _async_update_data(self) -> dict[str, Any]:\n        \"\"\"Fetch data from the API.\"\"\"\n        try:\n            return await self.api.async_get()\n        except ApiError as err:\n            raise UpdateFailed(\n                translation_domain=DOMAIN,\n                translation_key=\"update_failed\",\n                translation_placeholders={\"error\": str(err)},\n            ) from err\n","sourceCodeStart":36,"sourceCodeEnd":59,"githubUrl":"https://github.com/home-assistant/core/blob/58a3fdb3ea0538617f0a07efcfba6294de64fd59/homeassistant/components/advantage_air/coordinator.py#L36-L59","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","solutions":["Ping / open the controller's local web interface to confirm it is reachable at the configured host.","Check the full log line — the {error} placeholder contains the library's reason (timeout, status code, parse failure).","Restart or power-cycle the Advantage Air controller if its web API is wedged (common after firmware updates).","Verify the config entry host/port and scheme (http vs https with self-signed cert) match the controller.","Wait for the next poll interval; transient failures self-correct via the coordinator's retry, with debounced refresh on demand."],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":"def advantage_air_ok(coordinator) -> bool:\n    \"\"\"Coordinator reports healthy last refresh.\"\"\"\n    return coordinator.last_update_success","tryCatchPattern":"from homeassistant.exceptions import UpdateFailed\n\ntry:\n    await coordinator.async_config_entry_first_refresh()\nexcept UpdateFailed as err:\n    # {error} placeholder carries the ApiError text\n    _LOGGER.warning(\"Advantage Air refresh failed: %s\", err)","preventionTips":["Reserve a static IP for the AC controller.","Alert on repeated last_update_success == False rather than single failures.","Power-cycle the controller after firmware updates if its local API stalls."],"tags":["homeassistant","advantage-air","coordinator","api-error"],"backgroundTag":null,"analyzedSha":"58a3fdb3ea0538617f0a07efcfba6294de64fd59","analyzedAt":"2026-08-14T20:54:38.818Z","schemaVersion":2},"datasetVersion":"2026-08-16T03:17:38.424Z"}