home-assistant/core · warning · UpdateFailed

service_unavailable

Error message

service_unavailable

What it means

Raised as UpdateFailed (translation service_unavailable, retry_after 60s) when api.update() raises UnknownEndpointError: the Anglian Water API returned an unexpected/unknown response for an endpoint, treated as a transient service problem. The coordinator backs off one minute and retries; last-known entity values persist.

Source

Thrown at homeassistant/components/anglian_water/coordinator.py:88

        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]
            )

    async def _insert_statistics(self) -> None:
        """Insert statistics for water meters into Home Assistant."""
        for meter in self.api.meters.values():
            id_prefix = (
                f"{self.config_entry.data[CONF_ACCOUNT_NUMBER]}_{meter.serial_number}"
            )
            usage_statistic_id = f"{DOMAIN}:{id_prefix}_usage".lower()
            _LOGGER.debug("Updating statistics for meter %s", meter.serial_number)
            name_prefix = (

View on GitHub (pinned to 58a3fdb3ea)

Solutions

  1. Wait — the 60s retry usually rides out provider blips; check the Anglian Water service status.
  2. If it persists for hours, update Home Assistant so a patched anglian-water library/endpoint mapping is picked up.
  3. Report via GitHub issue with log timeframe if a new API change is suspected.
Defensive patterns

Strategy: retry

Try / catch

except UpdateFailed: accept the 60s retry cadence; only investigate after sustained failures spanning hours.

Prevention

When it happens

Trigger: api.update() hitting an endpoint whose response the library cannot parse or that returns an undocumented error code — API version changes, maintenance responses, or 404/5xx pages replacing JSON.

Common situations: Anglian Water backend deployments or outages; library (anglian-water API package) lagging behind an API change until an integration update ships.

Related errors


AI-assisted analysis of home-assistant/core@58a3fdb3ea (2026-08-14). Data as JSON: /api/errors/8e4f164666e1deef. Report an issue: GitHub.