{"record":{"id":"34c0f3347b0ccfd0","repo":"home-assistant/core","slug":"open-door-failed","errorCode":"open_door_failed","errorMessage":"open_door_failed","messagePattern":"open_door_failed","errorType":"exception","errorClass":"HomeAssistantError","httpStatus":null,"severity":"error","filePath":"homeassistant/components/aladdin_connect/cover.py","lineNumber":61,"sourceCode":"class AladdinCoverEntity(AladdinConnectEntity, CoverEntity):\n    \"\"\"Representation of Aladdin Connect cover.\"\"\"\n\n    _attr_device_class = CoverDeviceClass.GARAGE\n    _attr_supported_features = SUPPORTED_FEATURES\n    _attr_name = None\n\n    def __init__(self, coordinator: AladdinConnectCoordinator, door_id: str) -> None:\n        \"\"\"Initialize the Aladdin Connect cover.\"\"\"\n        super().__init__(coordinator, door_id)\n        self._attr_unique_id = door_id\n\n    @override\n    async def async_open_cover(self, **kwargs: Any) -> None:\n        \"\"\"Issue open command to cover.\"\"\"\n        try:\n            await self.client.open_door(self._device_id, self._number)\n        except aiohttp.ClientError as err:\n            raise HomeAssistantError(\n                translation_domain=DOMAIN,\n                translation_key=\"open_door_failed\",\n            ) from err\n\n    @override\n    async def async_close_cover(self, **kwargs: Any) -> None:\n        \"\"\"Issue close command to cover.\"\"\"\n        try:\n            await self.client.close_door(self._device_id, self._number)\n        except aiohttp.ClientError as err:\n            raise HomeAssistantError(\n                translation_domain=DOMAIN,\n                translation_key=\"close_door_failed\",\n            ) from err\n\n    @property\n    @override\n    def is_closed(self) -> bool | None:","sourceCodeStart":43,"sourceCodeEnd":79,"githubUrl":"https://github.com/home-assistant/core/blob/58a3fdb3ea0538617f0a07efcfba6294de64fd59/homeassistant/components/aladdin_connect/cover.py#L43-L79","documentation":"HomeAssistantError with translation_key 'open_door_failed' raised by AladdinConnectCover.async_open_cover when client.open_door() fails with any aiohttp.ClientError. The user-visible message comes from the integration's strings.json for that key (device/door placeholders), not from the raw exception; the original error is kept as __cause__ for the log.","triggerScenarios":"Calling cover.open_cover on an Aladdin Connect garage door while the cloud request fails: network error, 5xx, or timeout. Note 4xx auth failures from get_doors would normally surface earlier, but an open-door 4xx still arrives here as ClientResponseError (a ClientError subclass).","commonSituations":"Cloud outage at the moment of pressing the button; flaky internet; token invalidated between the last poll and the command.","solutions":["Retry the open command; transient cloud errors are the most common cause.","Check HA logs for the chained ClientError to see if it is auth (then re-authenticate) or connectivity.","Verify the door responds in the Aladdin Connect app to isolate HA vs. service issues.","In automations, catch HomeAssistantError and notify instead of failing silently."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"from homeassistant.exceptions import HomeAssistantError\n\ntry:\n    await cover.async_open_cover()\nexcept HomeAssistantError as err:\n    _LOGGER.error(\"Open failed: %s (cause: %r)\", err, err.__cause__)","preventionTips":["Retry door commands once on cloud transients before alerting.","Check the chained ClientError in logs to detect token expiry early.","Notify users on HomeAssistantError in garage automations."],"tags":["cover","garage-door","cloud","command-failure"],"backgroundTag":null,"analyzedSha":"58a3fdb3ea0538617f0a07efcfba6294de64fd59","analyzedAt":"2026-08-14T20:54:38.818Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}