home-assistant/core · error · UpdateFailed
current_conditions_update_error
current_conditions_update_error
Error message
An error occurred while retrieving weather current conditions data from the AccuWeather API: {error} What it means
UpdateFailed raised by the AccuWeather observation coordinator when fetching current conditions raises one of the coordinator's generic EXCEPTIONS (e.g. asyncio timeout after 10s, aiohttp ClientError, ApiError) inside _async_update_data. It marks the update failed so DataUpdateCoordinator logs and schedules a retry; the user-facing text comes from translation key current_conditions_update_error with the exception repr as placeholder.
Source
Thrown at homeassistant/components/accuweather/coordinator.py:87
self.device_info = _get_device_info(self.location_key, name)
super().__init__(
hass,
_LOGGER,
config_entry=config_entry,
name=f"{name} (observation)",
update_interval=UPDATE_INTERVAL_OBSERVATION,
)
@override
async def _async_update_data(self) -> dict[str, Any]:
"""Update data via library."""
try:
async with timeout(10):
result = await self.accuweather.async_get_current_conditions()
except EXCEPTIONS as error:
raise UpdateFailed(
translation_domain=DOMAIN,
translation_key="current_conditions_update_error",
translation_placeholders={"error": repr(error)},
) from error
except InvalidApiKeyError as err:
raise ConfigEntryAuthFailed(
translation_domain=DOMAIN,
translation_key="auth_error",
translation_placeholders={"entry": self.config_entry.title},
) from err
_LOGGER.debug("Requests remaining: %d", self.accuweather.requests_remaining)
return result
class AccuWeatherForecastDataUpdateCoordinator(
TimestampDataUpdateCoordinator[list[dict[str, Any]]]View on GitHub (pinned to 58a3fdb3ea)
Solutions
- Check requests remaining in debug logs (_LOGGER.debug('Requests remaining: %d')) — if 0, the free tier limit (50/day) is hit; wait for reset or reduce update interval
- Verify internet/DNS from the host and that no firewall blocks api.accuweather.com
- If it fails persistently, test the API key directly against https://dataservice.accuweather.com/currentconditions/v1/
- Increase confidence in connectivity then let the coordinator retry; only re-create the entry if the key itself is wrong (that raises InvalidApiKeyError → auth_error instead)
Defensive patterns
Strategy: retry
Try / catch
try:
async with timeout(10):
result = await self.accuweather.async_get_current_conditions()
except EXCEPTIONS as error:
raise UpdateFailed(
translation_domain=DOMAIN,
translation_key="current_conditions_update_error",
translation_placeholders={"error": repr(error)},
) from error Prevention
- Use translation keys + placeholders instead of hardcoded strings
- Catch library-specific exceptions explicitly; let auth errors fall to a separate handler
- Pick update intervals that respect API quota
When it happens
Trigger: self.accuweather.async_get_current_conditions() inside async with timeout(10) raises a network/API exception (timeout, connection reset, AccuWeather ApiError).
Common situations: AccuWeather API free-tier rate limit exhaustion, internet outage, 10-second timeout on slow mobile links, invalid/expired API key returning errors that surface as ApiError.
Related errors
- forecast_update_error
- Unable find multi-factor auth module: {mfa_module_id}
- Unable to connect to Abode: {ex}
- Error communicating with API: {e}
- {error}
AI-assisted analysis of home-assistant/core@58a3fdb3ea (2026-08-14).
Data as JSON: /api/errors/01aac605856037c7.
Report an issue: GitHub.