home-assistant/core · error · UpdateFailed
forecast_update_error
forecast_update_error
Error message
An error occurred while retrieving weather forecast data from the AccuWeather API: {error} What it means
UpdateFailed raised by the AccuWeather forecast coordinator when the forecast fetch method raises a generic exception (timeout >10s, connection error, or AccuWeather ApiError). It is the forecast counterpart of the observation error, keyed forecast_update_error, with the exception repr interpolated.
Source
Thrown at homeassistant/components/accuweather/coordinator.py:146
self.device_info = _get_device_info(self.location_key, name)
super().__init__(
hass,
_LOGGER,
config_entry=config_entry,
name=f"{name} ({coordinator_type})",
update_interval=update_interval,
)
@override
async def _async_update_data(self) -> list[dict[str, Any]]:
"""Update forecast data via library."""
try:
async with timeout(10):
result = await self._fetch_method(language=self.hass.config.language)
except EXCEPTIONS as error:
raise UpdateFailed(
translation_domain=DOMAIN,
translation_key="forecast_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 AccuWeatherDailyForecastDataUpdateCoordinator(
AccuWeatherForecastDataUpdateCoordinator
):View on GitHub (pinned to 58a3fdb3ea)
Solutions
- Confirm rate-limit headroom in debug logs ('Requests remaining'); free tier is 50 calls/day across all AccuWeather endpoints
- Reduce polling: disable the forecast option or increase scan_interval so forecast calls are less frequent
- Check connectivity to dataservice.accuweather.com and let the coordinator retry automatically
Defensive patterns
Strategy: retry
Try / catch
try:
async with timeout(10):
result = await self._fetch_method(language=self.hass.config.language)
except EXCEPTIONS as error:
raise UpdateFailed(
translation_domain=DOMAIN,
translation_key="forecast_update_error",
translation_placeholders={"error": repr(error)},
) from error Prevention
- Bound every fetch with asyncio.timeout
- Track requests_remaining and back off near quota
- Reuse one translated-error pattern across sibling coordinators
When it happens
Trigger: self._fetch_method(language=...) (5-day hourly or daily forecast call) raises one of EXCEPTIONS inside async with timeout(10).
Common situations: Same as observation failures: rate limits (the forecast endpoints count against the 50 calls/day free tier), transient network drops, slow responses exceeding the 10s timeout.
Related errors
- current_conditions_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/47f99726e5b138b8.
Report an issue: GitHub.