{"record":{"id":"071691f8c6bec3eb","repo":"home-assistant/core","slug":"station-config-entry-title-did-not-report-any","errorCode":null,"errorMessage":"Station '{config_entry.title}' did not report any data","messagePattern":"Station '(.+?)' did not report any data","errorType":"exception","errorClass":"UpdateFailed","httpStatus":null,"severity":"error","filePath":"homeassistant/components/ambient_network/coordinator.py","lineNumber":57,"sourceCode":"            update_interval=SCAN_INTERVAL,\n        )\n        self.api = api\n\n    @override\n    async def _async_update_data(self) -> dict[str, Any]:\n        \"\"\"Fetch the latest data from the Ambient Network.\"\"\"\n\n        try:\n            response = await self.api.get_device_details(\n                self.config_entry.data[CONF_MAC]\n            )\n        except RequestError as ex:\n            raise UpdateFailed(\"Cannot connect to Ambient Network\") from ex\n\n        self.station_name = get_station_name(response)\n\n        if (last_data := response.get(API_LAST_DATA)) is None:\n            raise UpdateFailed(\n                f\"Station '{self.config_entry.title}' did not report any data\"\n            )\n\n        # Some stations do not report a \"created_at\" or \"dateutc\".\n        # See https://github.com/home-assistant/core/issues/116917\n        if (ts := last_data.get(\"created_at\")) is not None or (\n            ts := last_data.get(\"dateutc\")\n        ) is not None:\n            self.last_measured = datetime.fromtimestamp(\n                ts / 1000, tz=dt_util.DEFAULT_TIME_ZONE\n            )\n\n        return cast(dict[str, Any], last_data)\n","sourceCodeStart":39,"sourceCodeEnd":71,"githubUrl":"https://github.com/home-assistant/core/blob/58a3fdb3ea0538617f0a07efcfba6294de64fd59/homeassistant/components/ambient_network/coordinator.py#L39-L71","documentation":"Raised as UpdateFailed when get_device_details succeeds but the response dict contains no 'lastData' key (API_LAST_DATA is None). The Ambient API returned a station record with no measurements, so the coordinator has no sensor data to publish. This is a data-shape problem, not a transport problem: the station exists but reported nothing.","triggerScenarios":"The Ambient API response for the configured MAC lacks the lastData field entirely, or it is null. Happens for newly registered stations that have not yet pushed their first reading, or stations that went offline and were purged from the cloud.","commonSituations":"Station not yet provisioned/synced on the Ambient cloud, a typo'd or stale MAC address in the config entry pointing at a phantom device, or a temporary API glitch returning a partial record.","solutions":["Confirm the station shows live data in the Ambient Weather app/portal for the same account.","Verify the MAC address in the config entry matches the physical station.","If the station is new, wait for it to post its first readings; the coordinator retries automatically.","If persistent, re-create the config entry via the discovery/config flow."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"response = await api.get_device_details(mac)\nif not isinstance(response, dict) or response.get('lastData') is None:\n    # station has no data yet; skip refresh instead of raising\n    return self.data","typeGuard":"def has_last_data(response: dict[str, Any]) -> bool:\n    return isinstance(response, dict) and response.get('lastData') is not None","tryCatchPattern":"Catch UpdateFailed and inspect whether prior refreshes succeeded; a first-run failure on a new station is expected until the station posts data.","preventionTips":["Confirm the station streams to the Ambient cloud before adding the config entry.","Double-check the MAC address during config flow.","For brand-new stations, expect one or two failed refreshes until first data arrives."],"tags":["data-shape","coordinator","weather","update-failed"],"backgroundTag":null,"analyzedSha":"58a3fdb3ea0538617f0a07efcfba6294de64fd59","analyzedAt":"2026-08-14T20:54:38.818Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}