home-assistant/core · error · AbortFlow
outdated_version
outdated_version
Error message
This device is using outdated firmware. Please update it to at least v1.2.0 and try again.
What it means
AbortFlow with reason 'outdated_version' in the Aranet config flow. It fires during Bluetooth discovery when the advertised manufacturer data is missing or reports a firmware version below MIN_VERSION (v1.2.0), because old Aranet4 firmware does not expose sensor data in advertisements and cannot be set up passively.
Source
Thrown at homeassistant/components/aranet/config_flow.py:43
)
class AranetConfigFlow(ConfigFlow, domain=DOMAIN):
"""Handle a config flow for Aranet."""
VERSION = 1
def __init__(self) -> None:
"""Set up a new config flow for Aranet."""
self._discovery_info: BluetoothServiceInfoBleak | None = None
self._discovered_device: Aranet4Advertisement | None = None
self._discovered_devices: dict[str, tuple[str, Aranet4Advertisement]] = {}
def _raise_for_advertisement_errors(self, adv: Aranet4Advertisement) -> None:
"""Raise any configuration errors that apply to an advertisement."""
# Old versions of firmware don't expose sensor data in advertisements.
if not adv.manufacturer_data or adv.manufacturer_data.version < MIN_VERSION:
raise AbortFlow("outdated_version")
# If integrations are disabled, we get no sensor data.
if not adv.manufacturer_data.integrations:
raise AbortFlow("integrations_disabled")
@override
async def async_step_bluetooth(
self, discovery_info: BluetoothServiceInfoBleak
) -> ConfigFlowResult:
"""Handle the Bluetooth discovery step."""
await self.async_set_unique_id(discovery_info.address)
self._abort_if_unique_id_configured()
adv = Aranet4Advertisement(discovery_info.device, discovery_info.advertisement)
self._raise_for_advertisement_errors(adv)
self._discovery_info = discovery_info
self._discovered_device = adv
return await self.async_step_bluetooth_confirm()View on GitHub (pinned to 58a3fdb3ea)
Solutions
- Update the Aranet4 firmware to at least v1.2.0 using the official Aranet app.
- Re-pair/re-discover the device in Home Assistant after the update (force a Bluetooth re-scan or restart discovery).
- If the device is already updated, move it closer to the Bluetooth adapter so complete manufacturer data is received.
Defensive patterns
Strategy: validation
Validate before calling
from aranet4 import Aranet4Advertisement
def is_setup_capable(adv: Aranet4Advertisement, min_version: int) -> bool:
md = adv.manufacturer_data
return md is not None and md.version >= min_version Try / catch
Wrap flow steps in try/except AbortFlow and inspect flow.reason == 'outdated_version' to show a firmware-update hint to the user.
Prevention
- Update Aranet firmware via the app before adding to Home Assistant.
- Check adv.manufacturer_data.version against MIN_VERSION before starting the config flow.
- Keep devices on current firmware via periodic app checks.
When it happens
Trigger: async_step_bluetooth (or the manual user step) processes an Aranet4Advertisement where adv.manufacturer_data is None or adv.manufacturer_data.version < MIN_VERSION; _raise_for_advertisement_errors raises AbortFlow('outdated_version') and the flow aborts with the localized message.
Common situations: A newly bought or long-unused Aranet4 running factory firmware; a device that was reset to an old firmware; orphan devices discovered via BLE that never received OTA updates.
Related errors
- integrations_disabled
- old_firmware
- unknown_error
- Key data not returned from device
- Data incomplete or missing
AI-assisted analysis of home-assistant/core@58a3fdb3ea (2026-08-14).
Data as JSON: /api/errors/5dc4c29089fa8f88.
Report an issue: GitHub.