{"record":{"id":"f4ad17db04cd7d63","repo":"home-assistant/core","slug":"err-f4ad17","errorCode":null,"errorMessage":"{err}","messagePattern":"\\{err\\}","errorType":"exception","errorClass":"UpdateFailed","httpStatus":null,"severity":"error","filePath":"homeassistant/components/android_ip_webcam/coordinator.py","lineNumber":49,"sourceCode":"        cam: PyDroidIPCam,\n    ) -> None:\n        \"\"\"Initialize the Android IP Webcam.\"\"\"\n        self.cam = cam\n        super().__init__(\n            hass,\n            _LOGGER,\n            config_entry=config_entry,\n            name=f\"{DOMAIN} {config_entry.data[CONF_HOST]}\",\n            update_interval=timedelta(seconds=10),\n        )\n\n    @override\n    async def _async_update_data(self) -> None:\n        \"\"\"Update Android IP Webcam entities.\"\"\"\n        try:\n            await self.cam.update()\n        except PyDroidIPCamException as err:\n            raise UpdateFailed(err) from err\n","sourceCodeStart":31,"sourceCodeEnd":50,"githubUrl":"https://github.com/home-assistant/core/blob/58a3fdb3ea0538617f0a07efcfba6294de64fd59/homeassistant/components/android_ip_webcam/coordinator.py#L31-L50","documentation":"Raised as UpdateFailed whose message is the string of a PyDroidIPCamException from pydroid-ipcam when self.cam.update() fails. PyDroidIPCamException is the library's catch-all for HTTP errors and connection problems talking to the Android IP Webcam app, so the UpdateFailed text is whatever the library said (often an aiohttp status line).","triggerScenarios":"Coordinator refresh calls cam.update(), which GETs /status.json on the phone's IP Webcam app; failures include connection refused (app closed), 401 (password set in app but not/incorrectly configured), timeouts, and non-200 responses.","commonSituations":"The IP Webcam app was swiped away or the phone slept (most common), phone IP changed via DHCP so the configured host is stale, or a video/audio port password mismatch after app reconfiguration.","solutions":["Open the IP Webcam app on the phone and confirm it is streaming.","Verify the host/port in the config entry still points at the phone; prefer a static IP or DNS name.","If the app has authentication enabled, make sure the username/password in the entry match.","Exclude the IP Webcam app from Android battery optimization so it survives sleep."],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":"except UpdateFailed: rely on the 10s coordinator retry; the UpdateFailed message is the PyDroidIPCamException text, useful for distinguishing 401 vs refused.","preventionTips":["Pin the phone's IP or use a DNS name; DHCP changes are the top recurring cause.","Disable battery optimization for the IP Webcam app.","Keep the app's auth settings in sync with the config entry."],"tags":["network","coordinator","camera","update-failed","pydroid-ipcam"],"backgroundTag":null,"analyzedSha":"58a3fdb3ea0538617f0a07efcfba6294de64fd59","analyzedAt":"2026-08-14T20:54:38.818Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}