home-assistant/core · error · ConfigEntryNotReady

Failed connecting to the websocket.

Error message

Failed connecting to the websocket.

What it means

Raised as a ConfigEntryNotReady when api.create_websocket() throws WebsocketFailure from the anova-cloud library. This means the WebSocket connection to Anova's cloud service could not be established or failed during setup. Because it is a ConfigEntryNotReady, Home Assistant marks the entry as setup-retrying and backs off exponentially rather than failing permanently.

Source

Thrown at homeassistant/components/anova/__init__.py:50

    )
    try:
        await api.authenticate()
    except InvalidLogin as err:
        _LOGGER.error(
            "Login was incorrect - please log back in through the config flow. %s", err
        )
        return False
    assert api.jwt
    try:
        await api.create_websocket()
    except NoDevicesFound as err:
        # Can later setup successfully and spawn a repair.
        raise ConfigEntryNotReady(
            "No devices were found on the websocket, perhaps you"
            " don't have any devices on this account?"
        ) from err
    except WebsocketFailure as err:
        raise ConfigEntryNotReady("Failed connecting to the websocket.") from err
    # Create a coordinator per device, if the device is offline, no data will be on the
    # websocket, and the coordinator should auto mark as unavailable. But as long as
    # the websocket successfully connected, config entry should setup.
    devices: list[APCWifiDevice] = []
    if TYPE_CHECKING:
        # api.websocket_handler can't be None after successfully creating the
        # websocket client
        assert api.websocket_handler is not None
    devices = list(api.websocket_handler.devices.values())
    coordinators = [AnovaCoordinator(hass, entry, device) for device in devices]
    entry.runtime_data = AnovaData(api_jwt=api.jwt, coordinators=coordinators, api=api)
    await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
    return True


async def async_unload_entry(hass: HomeAssistant, entry: AnovaConfigEntry) -> bool:
    """Unload a config entry."""
    if unload_ok := await hass.config_entries.async_unload_platforms(entry, PLATFORMS):

View on GitHub (pinned to 58a3fdb3ea)

Solutions

  1. Check network connectivity to Anovo cloud and confirm wss traffic is allowed (no proxy blocking WebSocket upgrades)
  2. Check Anova service status / community forums for a cloud outage; the entry will retry automatically
  3. If persistent, delete and re-run the config flow to re-authenticate and obtain a fresh JWT
Defensive patterns

Strategy: retry

Try / catch

try:
    await api.create_websocket()
except WebsocketFailure as err:
    raise ConfigEntryNotReady("Failed connecting to the websocket.") from err

Prevention

When it happens

Trigger: await api.create_websocket() failing at the transport level: Anova cloud endpoint unreachable, network/DNS problems, firewall blocking WebSocket upgrade (wss), expired or invalid JWT causing the server to reject the socket, or an anova-cloud library outage/bug.

Common situations: Transient Anova cloud downtime, local internet outage, reverse proxy or firewall stripping WebSocket upgrade headers, or a stale token after a password change on the Anova account.

Related errors


AI-assisted analysis of home-assistant/core@58a3fdb3ea (2026-08-14). Data as JSON: /api/errors/787961196358b000. Report an issue: GitHub.