diff --git a/hassio/api/proxy.py b/hassio/api/proxy.py index 27a6c7cfc..f3ddf4b92 100644 --- a/hassio/api/proxy.py +++ b/hassio/api/proxy.py @@ -4,7 +4,7 @@ import logging import aiohttp from aiohttp import web -from aiohttp.web_exceptions import HTTPBadGateway +from aiohttp.web_exceptions import HTTPBadGateway, HTTPInternalServerError from aiohttp.hdrs import CONTENT_TYPE import async_timeout @@ -133,15 +133,19 @@ class APIProxy(CoreSysAttributes): await server.prepare(request) # handle authentication - await server.send_json({ - 'type': 'auth_required', - 'ha_version': self._homeassistant.version, - }) - await server.receive_json() # get internal token - await server.send_json({ - 'type': 'auth_ok', - 'ha_version': self._homeassistant.version, - }) + try: + await server.send_json({ + 'type': 'auth_required', + 'ha_version': self._homeassistant.version, + }) + await server.receive_json() # get internal token + await server.send_json({ + 'type': 'auth_ok', + 'ha_version': self._homeassistant.version, + }) + except RuntimeError as err: + _LOGGER.error("Can't initialize handshake: %s", err) + raise HTTPInternalServerError() from None # init connection to hass client = await self._websocket_client()