home-assistant/core · error · HomeAssistantError

install_failed

install_failed

Error message

Failed to install firmware update on the BleBox device: {error}

What it means

The blebox update entity's async_install resets progress state and wraps any python-blebox Error raised by feature.async_install() into HomeAssistantError with key 'install_failed' ('Failed to install firmware update on the BleBox device: {error}'). The firmware installation did not start or failed midway; the entity resets its in-progress bookkeeping before raising.

Source

Thrown at homeassistant/components/blebox/update.py:135

    def _reset_progress(self) -> None:
        self._in_progress_old_version = None
        self._poll_attempts = 0
        self.async_write_ha_state()

    @override
    async def async_install(
        self, version: str | None, backup: bool, **kwargs: Any
    ) -> None:
        """Install an update."""
        self._cancel_poll()
        self._in_progress_old_version = self._feature.installed_version
        self._poll_attempts = 0
        self.async_write_ha_state()
        try:
            await self._feature.async_install()
        except Error as ex:
            self._reset_progress()
            raise HomeAssistantError(
                translation_domain=DOMAIN,
                translation_key="install_failed",
                translation_placeholders={"error": str(ex)},
            ) from ex
        self._poll_cancel = async_call_later(
            self.hass, _POLL_INTERVAL_SECONDS, self._poll_until_updated
        )

    @override
    async def async_will_remove_from_hass(self) -> None:
        """Cancel any pending poll timer when the entity is removed."""
        self._cancel_poll()

    async def _poll_until_updated(self, _now: Any) -> None:
        """Poll device until the installed version changes after OTA reboot."""
        self._poll_cancel = None
        self._poll_attempts += 1
        try:

View on GitHub (pinned to 58a3fdb3ea)

Solutions

  1. Ensure the device has a stable network connection and adequate power before retrying the install.
  2. Retry the install after the device is confirmed reachable (check the coordinator/entity state is not unavailable).
  3. If it keeps failing, fetch the exact error via debug logging and try updating through the vendor's BleBox app to isolate integration vs device issues.
Defensive patterns

Strategy: try-catch

Validate before calling

if update_coordinator.last_update_success is False:
    raise RuntimeError("Device unreachable; firmware install would fail")

Try / catch

from homeassistant.exceptions import HomeAssistantError

try:
    await update_entity.async_install(version=None, backup=False)
except HomeAssistantError as err:
    if err.translation_key == "install_failed":
        # verify connectivity before retrying; interrupted installs can brick devices
        _LOGGER.error("Firmware install failed: %s", err)

Prevention

When it happens

Trigger: Triggering 'Install' on the blebox update entity while the device cannot complete the firmware download/upload: device unreachable mid-command, gateway API error, insufficient memory on device, or the vendor firmware URL being unavailable.

Common situations: Unstable Wi-Fi during the long firmware transfer; device rebooting during install; power-cycling the device mid-update; rate-limited vendor firmware servers.

Related errors


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