{"record":{"id":"b0c89859c8b1be74","repo":"home-assistant/core","slug":"consent-required-b0c898","errorCode":null,"errorMessage":"consent_required","messagePattern":"consent_required","errorType":"exception","errorClass":"UpdateFailed","httpStatus":null,"severity":"error","filePath":"homeassistant/components/anglian_water/coordinator.py","lineNumber":77,"sourceCode":"            hass=hass,\n            logger=_LOGGER,\n            name=DOMAIN,\n            update_interval=UPDATE_INTERVAL,\n            config_entry=config_entry,\n        )\n        self.api = api\n\n    @override\n    async def _async_update_data(self) -> None:\n        \"\"\"Update data from Anglian Water's API.\"\"\"\n        try:\n            await self.api.update(self.config_entry.data[CONF_ACCOUNT_NUMBER])\n            await self._insert_statistics()\n        except ConsentRequiredError as err:\n            async_create_consent_required_issue(\n                self.hass, self.config_entry.data[CONF_ACCOUNT_NUMBER]\n            )\n            raise UpdateFailed(\n                translation_domain=DOMAIN,\n                translation_key=\"consent_required\",\n                retry_after=900.0,\n            ) from err\n        except (ExpiredAccessTokenError, InvalidGrantError) as err:\n            raise ConfigEntryAuthFailed(\n                translation_domain=DOMAIN,\n                translation_key=\"auth_expired\",\n            ) from err\n        except UnknownEndpointError as err:\n            raise UpdateFailed(\n                translation_domain=DOMAIN,\n                translation_key=\"service_unavailable\",\n                retry_after=60.0,\n            ) from err\n        else:\n            async_delete_consent_required_issue(\n                self.hass, self.config_entry.data[CONF_ACCOUNT_NUMBER]","sourceCodeStart":59,"sourceCodeEnd":95,"githubUrl":"https://github.com/home-assistant/core/blob/58a3fdb3ea0538617f0a07efcfba6294de64fd59/homeassistant/components/anglian_water/coordinator.py#L59-L95","documentation":"Raised as UpdateFailed (translation consent_required, retry_after 900s) inside the Anglian Water coordinator when api.update() throws ConsentRequiredError during a periodic refresh: the T&Cs acceptance lapsed after setup. A repair issue is created and the coordinator backs off 15 minutes instead of hammering the API; data entities keep their last values.","triggerScenarios":"A scheduled coordinator refresh after Anglian Water publishes new terms — api.update() then rejects with ConsentRequiredError even though the entry was previously working.","commonSituations":"Provider updates T&Cs periodically; all users of the integration start seeing unavailable entities until they visit the portal, then the next successful refresh auto-deletes the issue (the else-branch).","solutions":["Accept the updated terms by logging into the Anglian Water portal/app.","Wait up to 15 minutes (retry_after) or reload the integration to resume immediately.","Verify entities recover and the consent_required repair issue clears on the next successful update."],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":"except UpdateFailed: honor the 900s retry_after; after the user accepts the terms the else-branch auto-clears the repair issue.","preventionTips":["Treat consent_required issues as user action items, not bugs.","Don't reload repeatedly — the backoff exists to avoid API pressure."],"tags":["consent","water","coordinator","update-failed","repair-issue"],"backgroundTag":null,"analyzedSha":"58a3fdb3ea0538617f0a07efcfba6294de64fd59","analyzedAt":"2026-08-14T20:54:38.818Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}