home-assistant/core · error · UpdateFailed
consent_required
Error message
consent_required
What it means
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.
Source
Thrown at homeassistant/components/anglian_water/coordinator.py:77
hass=hass,
logger=_LOGGER,
name=DOMAIN,
update_interval=UPDATE_INTERVAL,
config_entry=config_entry,
)
self.api = api
@override
async def _async_update_data(self) -> None:
"""Update data from Anglian Water's API."""
try:
await self.api.update(self.config_entry.data[CONF_ACCOUNT_NUMBER])
await self._insert_statistics()
except ConsentRequiredError as err:
async_create_consent_required_issue(
self.hass, self.config_entry.data[CONF_ACCOUNT_NUMBER]
)
raise UpdateFailed(
translation_domain=DOMAIN,
translation_key="consent_required",
retry_after=900.0,
) from err
except (ExpiredAccessTokenError, InvalidGrantError) as err:
raise ConfigEntryAuthFailed(
translation_domain=DOMAIN,
translation_key="auth_expired",
) from err
except UnknownEndpointError as err:
raise UpdateFailed(
translation_domain=DOMAIN,
translation_key="service_unavailable",
retry_after=60.0,
) from err
else:
async_delete_consent_required_issue(
self.hass, self.config_entry.data[CONF_ACCOUNT_NUMBER]View on GitHub (pinned to 58a3fdb3ea)
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.
Defensive patterns
Strategy: retry
Try / catch
except UpdateFailed: honor the 900s retry_after; after the user accepts the terms the else-branch auto-clears the repair issue.
Prevention
- Treat consent_required issues as user action items, not bugs.
- Don't reload repeatedly — the backoff exists to avoid API pressure.
When it happens
Trigger: A scheduled coordinator refresh after Anglian Water publishes new terms — api.update() then rejects with ConsentRequiredError even though the entry was previously working.
Common situations: 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).
Related errors
- consent_required
- service_unavailable
- Unable find multi-factor auth module: {mfa_module_id}
- {error}
- {error}
AI-assisted analysis of home-assistant/core@58a3fdb3ea (2026-08-14).
Data as JSON: /api/errors/b0c89859c8b1be74.
Report an issue: GitHub.