{"record":{"id":"93c16e4702f301a1","repo":"home-assistant/core","slug":"no-general-channel-configured","errorCode":null,"errorMessage":"No general channel configured","messagePattern":"No general channel configured","errorType":"exception","errorClass":"UpdateFailed","httpStatus":null,"severity":"error","filePath":"homeassistant/components/amberelectric/coordinator.py","lineNumber":97,"sourceCode":"            \"forecasts\": {},\n            \"grid\": {},\n        }\n        try:\n            data = self._api.get_current_prices(\n                self.site_id,\n                next=288,\n                _request_timeout=REQUEST_TIMEOUT,\n            )\n            intervals = [interval.actual_instance for interval in data]\n        except ApiException as api_exception:\n            raise UpdateFailed(\"Missing price data, skipping update\") from api_exception\n\n        current = [interval for interval in intervals if is_current(interval)]\n        forecasts = [interval for interval in intervals if is_forecast(interval)]\n        general = [interval for interval in current if is_general(interval)]\n\n        if len(general) == 0:\n            raise UpdateFailed(\"No general channel configured\")\n\n        result[\"current\"][\"general\"] = general[0]\n        result[\"descriptors\"][\"general\"] = normalize_descriptor(general[0].descriptor)\n        result[\"forecasts\"][\"general\"] = [\n            interval for interval in forecasts if is_general(interval)\n        ]\n        result[\"grid\"][\"renewables\"] = round(general[0].renewables)\n        result[\"grid\"][\"price_spike\"] = general[0].spike_status.value\n        tariff_information = general[0].tariff_information\n        if tariff_information:\n            result[\"grid\"][\"demand_window\"] = tariff_information.demand_window\n\n        controlled_load = [\n            interval for interval in current if is_controlled_load(interval)\n        ]\n        if controlled_load:\n            result[\"current\"][\"controlled_load\"] = controlled_load[0]\n            result[\"descriptors\"][\"controlled_load\"] = normalize_descriptor(","sourceCodeStart":79,"sourceCodeEnd":115,"githubUrl":"https://github.com/home-assistant/core/blob/58a3fdb3ea0538617f0a07efcfba6294de64fd59/homeassistant/components/amberelectric/coordinator.py#L79-L115","documentation":"UpdateFailed('No general channel configured') raised in the Amber Electric coordinator when the fetched intervals contain current prices but none are on the general usage channel (is_general matches zero entries). The integration requires a general channel because it drives the main price sensors.","triggerScenarios":"get_current_price returns data, but every current interval is for a controlled-load or feed-in channel only — i.e. the Amber site/tariff selected has no general/usage channel, or the wrong site_id was configured.","commonSituations":"User selected the wrong site (e.g. a solar export-only setup), a tariff change on Amber's side removed the general channel, or a brand-new account whose general channel is not yet active.","solutions":["Verify in the Amber app that the site has a general/usage tariff channel active","Reconfigure the integration and select the correct site_id","Contact Amber if the general channel disappeared after a tariff change","Wait and let the next poll succeed if the channel is temporarily absent in the API response"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"general = [i for i in intervals if is_current(i) and is_general(i)]\nif not general:\n    _LOGGER.warning(\"No general channel on site %s; check tariff/site selection\", site_id)\n    return  # skip building sensors that require general prices","typeGuard":null,"tryCatchPattern":"try:\n    await coordinator.async_config_entry_first_refresh()\nexcept UpdateFailed as err:\n    if \"No general channel\" in str(err):\n        _LOGGER.error(\"Wrong Amber site or tariff lacks a general channel; reconfigure\")","preventionTips":["Confirm the site chosen during config flow has a general/usage tariff in the Amber app","Don't select export-only or controlled-load-only sites for this integration","Re-check the Amber tariff after account/plan changes"],"tags":["amberelectric","tariff","configuration","coordinator","homeassistant"],"backgroundTag":null,"analyzedSha":"58a3fdb3ea0538617f0a07efcfba6294de64fd59","analyzedAt":"2026-08-14T20:54:38.818Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}