home-assistant/core · error · ConfigEntryAuthFailed

Invalid credentials: {ex}

Error message

Invalid credentials: {ex}

What it means

Wrapped as ConfigEntryAuthFailed when the Abode library raises AbodeAuthenticationException during setup (the Abode(...) constructor run in an executor). It tells Home Assistant the stored credentials are rejected and starts the re-auth flow instead of retrying setup.

Source

Thrown at homeassistant/components/abode/__init__.py:98

    password = entry.data[CONF_PASSWORD]
    polling = entry.data[CONF_POLLING]

    # Configure abode library to use config directory for storing data
    jaraco.abode.config.paths.override(user_data=Path(hass.config.path("Abode")))

    # For previous config entries where unique_id is None
    if entry.unique_id is None:
        hass.config_entries.async_update_entry(
            entry, unique_id=entry.data[CONF_USERNAME]
        )

    try:
        abode = await hass.async_add_executor_job(
            Abode, username, password, True, True, True
        )

    except AbodeAuthenticationException as ex:
        raise ConfigEntryAuthFailed(f"Invalid credentials: {ex}") from ex

    except (AbodeException, ConnectTimeout, HTTPError) as ex:
        raise ConfigEntryNotReady(f"Unable to connect to Abode: {ex}") from ex

    entry.runtime_data = AbodeSystem(abode, polling)

    await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)

    await setup_hass_events(hass, entry)
    await hass.async_add_executor_job(setup_abode_events, hass, entry)

    return True


def _shutdown_client(abode: Abode) -> None:
    """Shutdown client."""
    abode.events.stop()
    abode.logout()

View on GitHub (pinned to 58a3fdb3ea)

Solutions

  1. Open the integration entry and complete the reconfigure/re-auth flow with current credentials
  2. Verify the Abode username/password by logging in to the Abode web app
  3. If the account uses MFA, satisfy it in the Abode app first, then re-authenticate the integration
Defensive patterns

Strategy: try-catch

Try / catch

from homeassistant.exceptions import ConfigEntryAuthFailed
from jaraco.abode.exceptions import AbodeAuthenticationException

try:
    abode = await hass.async_add_executor_job(Abode, user, pw, True, True, True)
except AbodeAuthenticationException as ex:
    raise ConfigEntryAuthFailed(f"Invalid credentials: {ex}") from ex

Prevention

When it happens

Trigger: async_setup_entry constructs Abode(username, password, ...) and Abode's login fails with AbodeAuthenticationException — bad password, revoked session, or MFA-required state.

Common situations: Password changed on the Abode account after the config entry was created; account locked; the stored username (used as unique_id) belongs to a deleted account.

Understand the failure class

Related errors


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