{"record":{"id":"f77a39a97b392615","repo":"home-assistant/core","slug":"configentryauthfailed","errorCode":null,"errorMessage":"ConfigEntryAuthFailed","messagePattern":"ConfigEntryAuthFailed","errorType":"exception","errorClass":"ConfigEntryAuthFailed","httpStatus":null,"severity":"error","filePath":"homeassistant/components/blebox/coordinator.py","lineNumber":47,"sourceCode":"        self, hass: HomeAssistant, config_entry: BleBoxConfigEntry, box: Box\n    ) -> None:\n        \"\"\"Initialize the coordinator.\"\"\"\n        super().__init__(\n            hass,\n            _LOGGER,\n            config_entry=config_entry,\n            name=DOMAIN,\n            update_interval=timedelta(seconds=5),\n        )\n        self.box = box\n\n    @override\n    async def _async_update_data(self) -> None:\n        \"\"\"Fetch data from the BleBox device.\"\"\"\n        try:\n            await self.box.async_update_data()\n        except UnauthorizedRequest as err:\n            raise ConfigEntryAuthFailed from err\n        except Error as err:\n            raise UpdateFailed(\n                translation_domain=DOMAIN,\n                translation_key=\"data_update_failed\",\n                translation_placeholders={\"error\": str(err)},\n            ) from err\n","sourceCodeStart":29,"sourceCodeEnd":54,"githubUrl":"https://github.com/home-assistant/core/blob/58a3fdb3ea0538617f0a07efcfba6294de64fd59/homeassistant/components/blebox/coordinator.py#L29-L54","documentation":"ConfigEntryAuthFailed raised at runtime: the blebox DataUpdateCoordinator's _async_update_data catches UnauthorizedRequest from box.async_update_data() and converts it to ConfigEntryAuthFailed. This is the documented HA pattern for mid-operation auth loss — the coordinator stops polling and HA opens a reauth flow instead of endlessly retrying authenticated requests.","triggerScenarios":"During a 5-second polling cycle, box.async_update_data() calls the device's API endpoints and one of them returns 401/403, so the library raises UnauthorizedRequest (e.g. a device password was enabled after setup, or stored credentials were invalidated).","commonSituations":"User sets a password in the device web UI after HA setup, device firmware update enabling auth by default, credentials changed on the entry but device not yet aligned, single multi-module device where one module's auth setting changed.","solutions":["Complete the reauth flow HA shows for the entry, providing the device's current username/password.","If the device should be passwordless, clear the password in its web UI and reload the entry.","Confirm no second app/controller changed the device's authorization settings.","Reload the config entry after fixing credentials so polling resumes with a fresh client session."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try:\n    await self.box.async_update_data()\nexcept UnauthorizedRequest as err:\n    raise ConfigEntryAuthFailed from err  # stop polling, start reauth\nexcept Error as err:\n    raise UpdateFailed(...) from err","preventionTips":["Coordinate password changes: device web UI and HA entry must be updated together.","Watch for ConfigEntryAuthFailed from coordinators — it means reauth, not a network hiccup.","Reload the entry after reauth so polling resumes with fresh credentials."],"tags":["home-assistant","blebox","coordinator","authentication","reauth"],"backgroundTag":null,"analyzedSha":"58a3fdb3ea0538617f0a07efcfba6294de64fd59","analyzedAt":"2026-08-14T20:54:38.818Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}