home-assistant/core · error · UpdateFailed
error
Error message
error
What it means
UpdateFailed raised by the aurora_abb_powerone coordinator only after the retry budget is exhausted: each SerialException or AuroraError decrements `retries`, sleeps 1s, and re-attempts; when retries reaches 0 the exception is re-raised as UpdateFailed. AuroraTimeoutError is treated separately as 'inverter dark' (no failure). This models a solar inverter on a serial/modbus link that is persistently erroring but not merely silent.
Source
Thrown at homeassistant/components/aurora_abb_powerone/coordinator.py:83
power_in_1 = self.client.measure(8)
power_in_2 = self.client.measure(9)
temperature_c = self.client.measure(21)
voltage_in_1 = self.client.measure(23)
current_in_1 = self.client.measure(25)
voltage_in_2 = self.client.measure(26)
current_in_2 = self.client.measure(27)
r_iso = self.client.measure(30)
energy_wh = self.client.cumulated_energy(5)
[alarm, *_] = self.client.alarms()
except AuroraTimeoutError:
self.available = False
_LOGGER.debug("No response from inverter (could be dark)")
retries = 0
except (SerialException, AuroraError) as error:
self.available = False
retries -= 1
if retries <= 0:
raise UpdateFailed(error) from error
_LOGGER.debug(
"Exception: %s occurred, %d retries remaining",
repr(error),
retries,
)
sleep(1)
else:
data["grid_voltage"] = round(grid_voltage, 1)
data["grid_current"] = round(grid_current, 1)
data["instantaneouspower"] = round(power_watts, 1)
data["grid_frequency"] = round(frequency, 1)
data["i_leak_dcdc"] = i_leak_dcdc
data["i_leak_inverter"] = i_leak_inverter
data["power_in_1"] = round(power_in_1, 1)
data["power_in_2"] = round(power_in_2, 1)
data["temp"] = round(temperature_c, 1)
data["voltage_in_1"] = round(voltage_in_1, 1)
data["current_in_1"] = round(current_in_1, 1)View on GitHub (pinned to 58a3fdb3ea)
Solutions
- Check the serial device exists and is the right one: ls -l /dev/ttyUSB* and compare with the integration config
- Ensure the HA process user can open the device (dialout group / udev rules)
- Inspect RS485 cabling/termination if AuroraError dominates (framing/CRC issues)
- If the inverter is intentionally off, disable the integration to stop the retry loop
Example fix
# before: config points at a stale device path
# options: /dev/ttyUSB0
# after: pin the adapter via udev by serial
# /etc/udev/rules.d/99-aurora.rules:
# SUBSYSTEM=="tty", ATTRS{idSerial}=="A9012XYZ", SYMLINK+="aurora485"
# then configure the integration with /dev/aurora485 Defensive patterns
Strategy: retry
Validate before calling
import os, stat
mode = os.stat(device_path).st_mode
if not stat.S_ISCHR(mode):
raise ValueError(f"{device_path} is not a serial device") Try / catch
try:
data = await coordinator.async_refresh()
except UpdateFailed as err:
cause = err.__cause__
if isinstance(cause, SerialException):
_LOGGER.error("Serial link down: check adapter/cable")
elif isinstance(cause, AuroraError):
_LOGGER.error("Modbus protocol errors: check RS485 wiring") Prevention
- Pin serial adapters with udev rules (SYMLINK) instead of raw ttyUSB paths
- Ensure the HA user is in the dialout group
- Distinguish AuroraTimeoutError (dark inverter, benign) from SerialException/AuroraError before debugging
When it happens
Trigger: Repeated SerialException (USB/serial adapter unplugged, wrong device path, permissions on /dev/ttyUSB*) or AuroraError (modbus framing errors, bad response CRC) on every retry attempt of the measurement loop (voltage, current, power, energy, alarms).
Common situations: Serial adapter re-enumerated to a different ttyUSB device after reboot; user lacks dialout group membership; RS485 wiring/grounding noise causing persistent protocol errors; inverter powered off for the season (though that normally yields AuroraTimeoutError instead).
Related errors
- Unable find multi-factor auth module: {mfa_module_id}
- current_conditions_update_error
- forecast_update_error
- Error communicating with API: {e}
- Got invalid status from device
AI-assisted analysis of home-assistant/core@58a3fdb3ea (2026-08-14).
Data as JSON: /api/errors/ad0b8dac04628bd5.
Report an issue: GitHub.