diff --git a/homeassistant/components/senz/__init__.py b/homeassistant/components/senz/__init__.py index bd96d6480e7..a23ff7bb994 100644 --- a/homeassistant/components/senz/__init__.py +++ b/homeassistant/components/senz/__init__.py @@ -6,6 +6,7 @@ from datetime import timedelta from http import HTTPStatus import logging +from aiohttp import ClientResponseError from httpx import HTTPStatusError, RequestError import jwt from pysenz import SENZAPI, Thermostat @@ -70,11 +71,26 @@ async def async_setup_entry(hass: HomeAssistant, entry: SENZConfigEntry) -> bool translation_domain=DOMAIN, translation_key="config_entry_not_ready", ) from err + except ClientResponseError as err: + if err.status in (HTTPStatus.UNAUTHORIZED, HTTPStatus.BAD_REQUEST): + raise ConfigEntryAuthFailed( + translation_domain=DOMAIN, + translation_key="config_entry_auth_failed", + ) from err + raise ConfigEntryNotReady( + translation_domain=DOMAIN, + translation_key="config_entry_not_ready", + ) from err except RequestError as err: raise ConfigEntryNotReady( translation_domain=DOMAIN, translation_key="config_entry_not_ready", ) from err + except Exception as err: + raise ConfigEntryAuthFailed( + translation_domain=DOMAIN, + translation_key="config_entry_auth_failed", + ) from err coordinator: SENZDataUpdateCoordinator = DataUpdateCoordinator( hass, diff --git a/tests/components/senz/test_init.py b/tests/components/senz/test_init.py index 20b9000fd69..79ee98ab687 100644 --- a/tests/components/senz/test_init.py +++ b/tests/components/senz/test_init.py @@ -98,7 +98,7 @@ async def test_migrate_config_entry( ( time.time() - 3600, HTTPStatus.INTERNAL_SERVER_ERROR, - ConfigEntryState.SETUP_ERROR, + ConfigEntryState.SETUP_RETRY, ), ], ids=["unauthorized", "internal_server_error"],