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.

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.

Appendix: 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)