home-assistant/core · warning · UpdateFailed
No data was returned from AirNow
Error message
No data was returned from AirNow
What it means
Raised by the AirNow coordinator when the API call succeeds but returns an empty observation list for the requested lat/long. UpdateFailed with a literal message; the entry retries on its interval but will keep failing until the location has reporting stations.
Source
Thrown at homeassistant/components/airnow/coordinator.py:84
name=DOMAIN,
update_interval=update_interval,
)
@override
async def _async_update_data(self) -> dict[str, Any]:
"""Update data via library."""
data: dict[str, Any] = {}
try:
obs = await self.airnow.observations.latLong(
self.latitude,
self.longitude,
)
except (AirNowError, ClientConnectorError, InvalidJsonError) as error:
raise UpdateFailed(error) from error
if not obs:
raise UpdateFailed("No data was returned from AirNow")
max_aqi = 0
max_aqi_level = 0
max_aqi_desc = ""
max_aqi_poll = ""
for obv in obs:
# Convert AQIs to Concentration
pollutant = obv[ATTR_API_AQI_PARAM]
concentration = aqi_to_concentration(obv[ATTR_API_AQI], pollutant)
data[obv[ATTR_API_AQI_PARAM]] = concentration
# Overall AQI is the max of all pollutant AQIs
if obv[ATTR_API_AQI] > max_aqi:
max_aqi = obv[ATTR_API_AQI]
max_aqi_level = obv[ATTR_API_CATEGORY][ATTR_API_CAT_LEVEL]
max_aqi_desc = obv[ATTR_API_CATEGORY][ATTR_API_CAT_DESCRIPTION]
max_aqi_poll = pollutant
View on GitHub (pinned to 58a3fdb3ea)
Solutions
- Double-check the coordinates in the config entry are correct
- Move the query point closer to a known monitoring station (see fire.airnow.gov monitor map)
- If the nearest station is simply offline, wait — the coordinator retries automatically
- If the area has permanent coverage gaps, use a different air-quality integration
Defensive patterns
Strategy: validation
Validate before calling
# Before relying on the entity, check station coverage at fire.airnow.gov # for the configured lat/long; empty observations mean no nearby reporting monitors.
Prevention
- Place the query point near a known monitoring station
- Treat empty-data failures as coverage gaps, not bugs
- Prefer a denser provider (e.g. AirNow by zip alternative or PurpleAir) for remote areas
When it happens
Trigger: observations.latLong() returns [] — the point has no AirNow reporting stations nearby (rural/remote US areas, or coordinates just outside coverage), or stations are temporarily not reporting.
Common situations: US location far from any monitoring station, coordinates slightly off (e.g. in water/wilderness), or nighttime/maintenance gaps in station reporting.
Related errors
- An error occurred while retrieving data from the Airly API f
- {error}
- Credential is already linked to a user
- Unable to deactivate the owner
- System generated users cannot enable multi-factor auth modul
AI-assisted analysis of home-assistant/core@58a3fdb3ea (2026-08-14).
Data as JSON: /api/errors/cfe55609e6a9a700.
Report an issue: GitHub.