home-assistant/core · error · UpdateFailed
Data incomplete or missing
Error message
Data incomplete or missing
What it means
UpdateFailed raised by the airos coordinator when the device responds but the response lacks data the integration requires (AirOSDataMissingError). Unlike a connection failure, the device was reachable — it returned an incomplete or unexpected payload, so the parsed AirOSData object was missing required fields.
Source
Thrown at homeassistant/components/airos/coordinator.py:72
return await update_method()
except AirOSConnectionAuthenticationError as err:
_LOGGER.exception("Error authenticating with airOS device")
raise ConfigEntryAuthFailed(
translation_domain=DOMAIN, translation_key="invalid_auth"
) from err
except (
AirOSConnectionSetupError,
AirOSDeviceConnectionError,
TimeoutError,
) as err:
_LOGGER.error("Error connecting to airOS device: %s", err)
raise UpdateFailed(
translation_domain=DOMAIN,
translation_key="cannot_connect",
) from err
except AirOSDataMissingError as err:
_LOGGER.error("Expected data not returned by airOS device: %s", err)
raise UpdateFailed(
translation_domain=DOMAIN,
translation_key="error_data_missing",
) from err
class AirOSDataUpdateCoordinator(DataUpdateCoordinator[AirOSDataDetect]):
"""Class to manage fetching AirOS status data from single endpoint."""
config_entry: AirOSConfigEntry
def __init__(
self,
hass: HomeAssistant,
config_entry: AirOSConfigEntry,
device_data: DetectDeviceData,
airos_device: AirOSDeviceDetect,
) -> None:
"""Initialize the coordinator."""View on GitHub (pinned to 58a3fdb3ea)
Solutions
- Check the log line 'Expected data not returned by airOS device: %s' — it names which data was missing.
- Update the aiosiso/airos python library and the integration; data-model gaps are usually fixed upstream.
- Confirm the device model is officially supported by the integration.
- Reboot the airOS device to rule out a wedged web service after firmware changes.
- If a recent firmware upgrade preceded the error, report the missing fields to the library maintainers.
Defensive patterns
Strategy: try-catch
Type guard
def is_airos_data_missing(err: Exception) -> bool:
return isinstance(err, UpdateFailed) and getattr(err, "translation_key", None) == "error_data_missing" Try / catch
try:
await coordinator.async_refresh()
except UpdateFailed as err:
if getattr(err, "translation_key", None) == "error_data_missing":
# device reachable but payload unexpected: do not retry-loop; check firmware/library
_LOGGER.warning("airOS data model mismatch: %s", err) Prevention
- Pin known-good firmware on airOS devices in environments relying on the integration.
- Check release notes of the airos python library before upgrading device firmware.
- Report missing-field names from logs upstream so the data model gets patched.
When it happens
Trigger: The update method (e.g. fetching device status) raises AirOSDataMissingError because the JSON from the device omits expected keys — commonly after a firmware change, on an unusual device model, or when the endpoint returns an error page/partial data that still parses.
Common situations: Firmware upgrade changed the API response shape, unsupported airOS device variant (e.g. airMAX vs EdgePoint with different payloads), or the device returning degraded data while its web service is overloaded.
Related errors
- Key data not returned from device
- Failed to connect
- Unable find multi-factor auth module: {mfa_module_id}
- update_error
- unknown_error
AI-assisted analysis of home-assistant/core@58a3fdb3ea (2026-08-14).
Data as JSON: /api/errors/76853f422f807bca.
Report an issue: GitHub.