home-assistant/core · error · UpdateFailed

inverter_error

inverter_error

Error message

Inverter returned an error

What it means

UpdateFailed raised by the APSystems coordinator (translation_key 'inverter_error') when the solar inverter client raises InverterReturnedError while fetching output data or alarm info. It means the inverter answered the local API request with an error/invalid response rather than timing out — the coordinator marks the update failed and schedules a retry.

Source

Thrown at homeassistant/components/apsystems/coordinator.py:80

    @override
    async def _async_setup(self) -> None:
        try:
            device_info = await self.api.get_device_info()
        except ConnectionError, TimeoutError:
            raise UpdateFailed from None
        self.api.max_power = device_info.maxPower
        self.api.min_power = device_info.minPower
        self.device_version = device_info.devVer
        self.battery_system = device_info.isBatterySystem

    @override
    async def _async_update_data(self) -> ApSystemsSensorData:
        try:
            output_data = await self.api.get_output_data()
            alarm_info = await self.api.get_alarm_info()
        except InverterReturnedError:
            raise UpdateFailed(
                translation_domain=DOMAIN, translation_key="inverter_error"
            ) from None
        return ApSystemsSensorData(output_data=output_data, alarm_info=alarm_info)

View on GitHub (pinned to 58a3fdb3ea)

Solutions

  1. Wait for the next coordinator retry — transient inverter errors usually self-heal within a few polling intervals.
  2. Verify the configured host/IP points to the actual APSystems unit and that the unit is powered and networked.
  3. Power-cycle the inverter/ECU if errors persist, and check for a firmware update in the vendor app.
  4. If polling interval is very short, increase update interval to reduce load on the inverter's limited local API.
Defensive patterns

Strategy: retry

Try / catch

# Coordinator already handles this: InverterReturnedError -> UpdateFailed -> auto retry.
# In custom code calling the client directly:
from aiohttp import ClientError

for attempt in range(3):
    try:
        return await client.get_output_data()
    except InverterReturnedError:
        if attempt == 2:
            raise
    await asyncio.sleep(2 ** attempt)

Prevention

When it happens

Trigger: self.api.get_output_data() or get_alarm_data() in _async_update_data raises InverterReturnedError: the inverter's HTTP/UDP response signals an error condition (its QID/endpoint returns an error token), typically while the unit is rebooting, off (no sun/night power), mid-firmware-upgrade, or when the request hits the wrong endpoint/port.

Common situations: ECU/inverter unreachable state at dawn or dusk as the unit powers up; APSystems firmware updates that briefly break the local API; polling too aggressively; wrong IP configured so another device answers; Wi-Fi dropouts between HA and the EZ1m socket.

Related errors


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