home-assistant/core · error · UpdateFailed
No general channel configured
Error message
No general channel configured
What it means
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.
Source
Thrown at homeassistant/components/amberelectric/coordinator.py:97
"forecasts": {},
"grid": {},
}
try:
data = self._api.get_current_prices(
self.site_id,
next=288,
_request_timeout=REQUEST_TIMEOUT,
)
intervals = [interval.actual_instance for interval in data]
except ApiException as api_exception:
raise UpdateFailed("Missing price data, skipping update") from api_exception
current = [interval for interval in intervals if is_current(interval)]
forecasts = [interval for interval in intervals if is_forecast(interval)]
general = [interval for interval in current if is_general(interval)]
if len(general) == 0:
raise UpdateFailed("No general channel configured")
result["current"]["general"] = general[0]
result["descriptors"]["general"] = normalize_descriptor(general[0].descriptor)
result["forecasts"]["general"] = [
interval for interval in forecasts if is_general(interval)
]
result["grid"]["renewables"] = round(general[0].renewables)
result["grid"]["price_spike"] = general[0].spike_status.value
tariff_information = general[0].tariff_information
if tariff_information:
result["grid"]["demand_window"] = tariff_information.demand_window
controlled_load = [
interval for interval in current if is_controlled_load(interval)
]
if controlled_load:
result["current"]["controlled_load"] = controlled_load[0]
result["descriptors"]["controlled_load"] = normalize_descriptor(View on GitHub (pinned to 58a3fdb3ea)
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
Defensive patterns
Strategy: validation
Validate before calling
general = [i for i in intervals if is_current(i) and is_general(i)]
if not general:
_LOGGER.warning("No general channel on site %s; check tariff/site selection", site_id)
return # skip building sensors that require general prices Try / catch
try:
await coordinator.async_config_entry_first_refresh()
except UpdateFailed as err:
if "No general channel" in str(err):
_LOGGER.error("Wrong Amber site or tariff lacks a general channel; reconfigure") Prevention
- 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
When it happens
Trigger: 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.
Common situations: 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.
Related errors
- Missing price data, skipping update
- channel_not_found
- Error communicating with API: {e}
- Got invalid status from device
- update_failed
AI-assisted analysis of home-assistant/core@58a3fdb3ea (2026-08-14).
Data as JSON: /api/errors/93c16e4702f301a1.
Report an issue: GitHub.