home-assistant/core · error · HomeAssistantError

Blink failed to disarm camera

Error message

Blink failed to disarm camera

What it means

blink alarm_control_panel.async_alarm_disarm raises HomeAssistantError('Blink failed to disarm camera') when the blinkpy SyncModule.async_arm(False) call times out. The disarm command was sent to Blink's cloud but no response arrived in time; the camera may or may not have disarmed, and the coordinator refresh after the try block is skipped because the exception propagates.

Source

Thrown at homeassistant/components/blink/alarm_control_panel.py:94

    def _update_attr(self) -> None:
        """Update attributes for alarm control panel."""
        self.sync.attributes["network_info"] = self.api.networks
        self.sync.attributes["associated_cameras"] = list(self.sync.cameras)
        self._attr_extra_state_attributes = self.sync.attributes
        self._attr_alarm_state = (
            AlarmControlPanelState.ARMED_AWAY
            if self.sync.arm
            else AlarmControlPanelState.DISARMED
        )

    @override
    async def async_alarm_disarm(self, code: str | None = None) -> None:
        """Send disarm command."""
        try:
            await self.sync.async_arm(False)

        except TimeoutError as er:
            raise HomeAssistantError("Blink failed to disarm camera") from er
        except UnauthorizedError as er:
            self.coordinator.config_entry.async_start_reauth(self.hass)
            raise ConfigEntryAuthFailed("Blink authorization failed") from er

        await self.coordinator.async_refresh()

    @override
    async def async_alarm_arm_away(self, code: str | None = None) -> None:
        """Send arm command."""
        try:
            await self.sync.async_arm(True)

        except TimeoutError as er:
            raise HomeAssistantError("Blink failed to arm camera away") from er
        except UnauthorizedError as er:
            self.coordinator.config_entry.async_start_reauth(self.hass)
            raise ConfigEntryAuthFailed("Blink authorization failed") from er

View on GitHub (pinned to 58a3fdb3ea)

Solutions

  1. Retry the disarm command — Blink cloud timeouts are frequently transient.
  2. Check Blink service status / the Blink app; if the app also fails, it is a cloud-side problem.
  3. Verify internet connectivity on the HA host.
  4. If persistent, delete and reconfigure the Blink integration to refresh credentials.
Defensive patterns

Strategy: retry

Try / catch

from homeassistant.exceptions import HomeAssistantError

try:
    await alarm.async_alarm_disarm(code)
except HomeAssistantError as err:
    if "failed to disarm" in str(err).lower():
        await asyncio.sleep(5)
        await alarm.async_alarm_disarm(code)  # single retry

Prevention

When it happens

Trigger: Calling the alarm_control_panel.disarm service on a Blink sync module when the blinkpy API request exceeds its timeout — slow Blink cloud responses, internet outage, or Blink server-side issues.

Common situations: Blink cloud API slowness or outage; local internet drop; token expired handled separately (that raises UnauthorizedError instead); oversized networks with many cameras making responses slow.

Related errors


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