home-assistant/core · error · HomeAssistantError
The device did not accept the reboot request. Try again, or
Error message
The device did not accept the reboot request. Try again, or check your device web interface for errors.
What it means
Raised by the airos reboot button when the device accepted the connection and login succeeded, but reboot() returned a falsy result — meaning the airOS device did not confirm the reboot request. It maps to the 'reboot_failed' translation key and is raised 'from None' because there is no underlying exception, only an unsuccessful API response.
Source
Thrown at homeassistant/components/airos/button.py:69
self.entity_description = description
self._attr_unique_id = f"{coordinator.data.derived.mac}_{description.key}"
@override
async def async_press(self) -> None:
"""Handle the button press to reboot the device."""
try:
await self.coordinator.airos_device.login()
result = await self.coordinator.airos_device.reboot()
except AirOSException as err:
raise HomeAssistantError(
translation_domain=DOMAIN,
translation_key="cannot_connect",
) from err
if not result:
raise HomeAssistantError(
translation_domain=DOMAIN,
translation_key="reboot_failed",
) from None
View on GitHub (pinned to 58a3fdb3ea)
Solutions
- Open the device web interface and trigger the reboot manually to see if the device reports a specific error (e.g. busy, updating).
- Confirm the configured account has administrator rights on the airOS device.
- Retry the button press once the device is idle.
- Check for updates to the underlying airos library / integration if the device firmware is newer than what the library supports.
Defensive patterns
Strategy: retry
Type guard
def is_airos_reboot_failed(err: Exception) -> bool:
return isinstance(err, HomeAssistantError) and getattr(err, "translation_domain", None) == "airos" and getattr(err, "translation_key", None) == "reboot_failed" Try / catch
try:
await async_press()
except HomeAssistantError as err:
if getattr(err, "translation_key", None) == "reboot_failed":
# command rejected, not a crash: verify device state, wait, retry once
await asyncio.sleep(30)
await async_press() Prevention
- Use an admin-level account on the airOS device for the integration.
- Do not trigger reboot automations while firmware updates are in progress.
- Treat a falsy reboot() result as 'unconfirmed', and verify uptime afterwards instead of blindly retrying.
When it happens
Trigger: async_press completes login() and reboot() without exception, but reboot() returns None/False — e.g. the device responded to the HTTP request with an error payload, rejected the reboot command because an update is in progress, or the response parsing indicated the command was not accepted.
Common situations: Device firmware mid-update or already rebooting, insufficient privileges for the logged-in user (read-only account), or a firmware version whose reboot endpoint responds differently than the library expects.
Related errors
- Failed to connect
- Failed to press {button} button.
- Key data not returned from device
- Unknown error
- Invalid authentication
AI-assisted analysis of home-assistant/core@58a3fdb3ea (2026-08-14).
Data as JSON: /api/errors/82e52bff6e687020.
Report an issue: GitHub.