{"record":{"id":"6d6516ae986e312c","repo":"home-assistant/core","slug":"blink-failed-to-disarm-camera","errorCode":null,"errorMessage":"Blink failed to disarm camera","messagePattern":"Blink failed to disarm camera","errorType":"exception","errorClass":"HomeAssistantError","httpStatus":null,"severity":"error","filePath":"homeassistant/components/blink/alarm_control_panel.py","lineNumber":94,"sourceCode":"    def _update_attr(self) -> None:\n        \"\"\"Update attributes for alarm control panel.\"\"\"\n        self.sync.attributes[\"network_info\"] = self.api.networks\n        self.sync.attributes[\"associated_cameras\"] = list(self.sync.cameras)\n        self._attr_extra_state_attributes = self.sync.attributes\n        self._attr_alarm_state = (\n            AlarmControlPanelState.ARMED_AWAY\n            if self.sync.arm\n            else AlarmControlPanelState.DISARMED\n        )\n\n    @override\n    async def async_alarm_disarm(self, code: str | None = None) -> None:\n        \"\"\"Send disarm command.\"\"\"\n        try:\n            await self.sync.async_arm(False)\n\n        except TimeoutError as er:\n            raise HomeAssistantError(\"Blink failed to disarm camera\") from er\n        except UnauthorizedError as er:\n            self.coordinator.config_entry.async_start_reauth(self.hass)\n            raise ConfigEntryAuthFailed(\"Blink authorization failed\") from er\n\n        await self.coordinator.async_refresh()\n\n    @override\n    async def async_alarm_arm_away(self, code: str | None = None) -> None:\n        \"\"\"Send arm command.\"\"\"\n        try:\n            await self.sync.async_arm(True)\n\n        except TimeoutError as er:\n            raise HomeAssistantError(\"Blink failed to arm camera away\") from er\n        except UnauthorizedError as er:\n            self.coordinator.config_entry.async_start_reauth(self.hass)\n            raise ConfigEntryAuthFailed(\"Blink authorization failed\") from er\n","sourceCodeStart":76,"sourceCodeEnd":112,"githubUrl":"https://github.com/home-assistant/core/blob/58a3fdb3ea0538617f0a07efcfba6294de64fd59/homeassistant/components/blink/alarm_control_panel.py#L76-L112","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","solutions":["Retry the disarm command — Blink cloud timeouts are frequently transient.","Check Blink service status / the Blink app; if the app also fails, it is a cloud-side problem.","Verify internet connectivity on the HA host.","If persistent, delete and reconfigure the Blink integration to refresh credentials."],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":"from homeassistant.exceptions import HomeAssistantError\n\ntry:\n    await alarm.async_alarm_disarm(code)\nexcept HomeAssistantError as err:\n    if \"failed to disarm\" in str(err).lower():\n        await asyncio.sleep(5)\n        await alarm.async_alarm_disarm(code)  # single retry","preventionTips":["Treat Blink timeout errors as transient; verify final arm state before re-sending.","Monitor Blink cloud status instead of stacking retries."],"tags":["home-assistant","blink","alarm-control-panel","timeout","cloud"],"backgroundTag":null,"analyzedSha":"58a3fdb3ea0538617f0a07efcfba6294de64fd59","analyzedAt":"2026-08-14T20:54:38.818Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}