home-assistant/core · error · ConfigEntryError

Key data not returned from device

Error message

Key data not returned from device

What it means

Raised during AirOS (Ubiquiti airOS) config entry setup when device_data fetch raises AirOSKeyDataMissingError — the library connected and authenticated but the device response lacked key data needed to build the device model. ConfigEntryError with translation key key_data_missing marks the entry as failed (not retried) until the user intervenes.

Source

Thrown at homeassistant/components/airos/__init__.py:109

        device_data: DetectDeviceData = await async_get_firmware_data(**conn_data)

    except (
        AirOSConnectionSetupError,
        AirOSDeviceConnectionError,
        AirOSTLSCompatibilityError,
        TimeoutError,
    ) as err:
        await close_session()
        raise ConfigEntryNotReady from err
    except (
        AirOSConnectionAuthenticationError,
        AirOSDataMissingError,
    ) as err:
        await close_session()
        raise ConfigEntryAuthFailed from err
    except AirOSKeyDataMissingError as err:
        await close_session()
        raise ConfigEntryError(
            translation_domain=DOMAIN, translation_key="key_data_missing"
        ) from err
    except Exception as err:
        await close_session()
        raise ConfigEntryError(
            translation_domain=DOMAIN, translation_key="unknown"
        ) from err

    airos_class: type[AirOS8 | AirOS6] = (
        AirOS8 if device_data["fw_major"] == 8 else AirOS6
    )

    airos_device = airos_class(**conn_data)

    data_coordinator = AirOSDataUpdateCoordinator(
        hass, entry, device_data, airos_device
    )

View on GitHub (pinned to 58a3fdb3ea)

Solutions

  1. Confirm the target is a genuine airOS 6/8 device (check the device web UI)
  2. Upgrade the device firmware to a supported airOS release and retry setup
  3. Capture the device's /status JSON and compare against what the pyairos library expects; report a library issue if fields are missing
  4. Remove the failed entry and re-add it after firmware correction
Defensive patterns

Strategy: validation

Validate before calling

# Before adding the entry, confirm the device is airOS and its status payload parses:
# curl -k -u user:pass https://<host>/status  -> JSON containing fw_major and key fields.

Prevention

When it happens

Trigger: Device responds to login/status calls but the parsed payload is missing expected fields (e.g. fw_major or device identification data) — typically unsupported/very old firmware or an unexpected airOS response shape.

Common situations: Pointing the integration at a non-airOS device or EdgePoint/other Ubiquiti gear with a different API, ancient airOS versions (<6), or a firmware version the airos library cannot parse.

Related errors


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