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

  1. Check the log line 'Expected data not returned by airOS device: %s' — it names which data was missing.
  2. Update the aiosiso/airos python library and the integration; data-model gaps are usually fixed upstream.
  3. Confirm the device model is officially supported by the integration.
  4. Reboot the airOS device to rule out a wedged web service after firmware changes.
  5. 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

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


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