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
- Open the integration entry and complete the reconfigure/re-auth flow with current credentials
- Verify the Abode username/password by logging in to the Abode web app
- 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
- Implement async_reconfigure/reauth so users can fix credentials without deleting the entry
- Only map genuine credential failures to ConfigEntryAuthFailed
- Chain the original exception for diagnostics
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
- Authentication and authorization failures — expired tokens, bad credentials, and missing scopes.
Related errors
AI-assisted analysis of home-assistant/core@58a3fdb3ea (2026-08-14).
Data as JSON: /api/errors/848717ca0e919299.
Report an issue: GitHub.