diff --git a/supervisor/api/utils.py b/supervisor/api/utils.py index e2f0ce76f85..ccbe52a363e 100644 --- a/supervisor/api/utils.py +++ b/supervisor/api/utils.py @@ -3,6 +3,7 @@ import asyncio from collections.abc import Callable, Mapping import json +import logging from typing import Any, cast from aiohttp import web @@ -31,8 +32,11 @@ from ..utils import check_exception_chain, get_message_from_exception_chain from ..utils.json import json_dumps, json_loads as json_loads_util from ..utils.log_format import format_message +from ..utils.sentry import async_capture_exception from . import const +_LOGGER: logging.Logger = logging.getLogger(__name__) + def extract_supervisor_token(request: web.Request) -> str | None: """Extract Supervisor token from request.""" @@ -72,6 +76,8 @@ async def wrap_api(*args, **kwargs) -> web.Response | web.StreamResponse: err, status=err.status, job_id=err.job_id, headers=err.headers ) except HassioError as err: + _LOGGER.exception("Unexpected error during API call: %s", err) + await async_capture_exception(err) return api_return_error(err) if isinstance(answer, (dict, list)): @@ -119,6 +125,8 @@ async def wrap_api(*args, **kwargs) -> web.Response | web.StreamResponse: job_id=err.job_id, ) except HassioError as err: + _LOGGER.exception("Unexpected error during API call: %s", err) + await async_capture_exception(err) return api_return_error( err, error_type=error_type or const.CONTENT_TYPE_BINARY ) diff --git a/supervisor/os/manager.py b/supervisor/os/manager.py index b6b6099ca5b..57672fee2b8 100644 --- a/supervisor/os/manager.py +++ b/supervisor/os/manager.py @@ -22,7 +22,6 @@ ) from ..jobs.const import JobConcurrency, JobCondition from ..jobs.decorator import Job -from ..utils.sentry import async_capture_exception from .data_disk import DataDisk _LOGGER: logging.Logger = logging.getLogger(__name__) @@ -363,7 +362,6 @@ async def set_boot_slot(self, boot_name: str) -> None: RaucState.ACTIVE, self.get_slot_name(boot_name) ) except DBusError as err: - await async_capture_exception(err) raise HassOSSlotUpdateError( f"Can't mark {boot_name} as active!", _LOGGER.error ) from err