Skip to content

Commit 3e47044

Browse files
authored
Better logging of client errors (#620)
1 parent 74f984c commit 3e47044

File tree

1 file changed

+12
-17
lines changed

1 file changed

+12
-17
lines changed

matter_server/server/client_handler.py

+12-17
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from matter_server.common.helpers.json import json_dumps, json_loads
1616
from matter_server.common.models import EventType
1717

18-
from ..common.errors import InvalidArguments, InvalidCommand, MatterError, SDKStackError
18+
from ..common.errors import InvalidArguments, InvalidCommand, MatterError
1919
from ..common.helpers.api import parse_arguments
2020
from ..common.helpers.util import dataclass_from_dict
2121
from ..common.models import (
@@ -192,27 +192,22 @@ async def _run_handler(
192192
if asyncio.iscoroutine(result):
193193
result = await result
194194
self._send_message(SuccessResultMessage(msg.message_id, result))
195-
except ChipStackError as err:
196-
self._logger.error(
197-
"SDK Error during handling message: %s: %s",
198-
msg.command,
199-
str(err),
200-
# only print the full stacktrace if debug logging is enabled
201-
exc_info=err if self._logger.isEnabledFor(logging.DEBUG) else None,
202-
)
203-
self._send_message(
204-
ErrorResultMessage(msg.message_id, SDKStackError.error_code, str(err))
205-
)
206-
except Exception as err: # pylint: disable=broad-except # noqa: BLE001
195+
except (ChipStackError, MatterError) as err:
196+
error_code = getattr(err, "error_code", MatterError.error_code)
197+
message_str = msg.command
198+
if msg.args and (node_id := msg.args.get("node_id")):
199+
message_str += f" (node {node_id})"
207200
self._logger.error(
208-
"SDK Error during handling message: %s: %s",
209-
msg.command,
210-
str(err),
201+
"Error while handling: %s: %s",
202+
message_str,
203+
str(err) or err.__class__.__name__,
211204
# only print the full stacktrace if debug logging is enabled
212205
exc_info=err if self._logger.isEnabledFor(logging.DEBUG) else None,
213206
)
214-
error_code = getattr(err, "error_code", MatterError.error_code)
215207
self._send_message(ErrorResultMessage(msg.message_id, error_code, str(err)))
208+
except Exception as err:
209+
self._send_message(ErrorResultMessage(msg.message_id, 0, str(err)))
210+
raise err
216211

217212
async def _writer(self) -> None:
218213
"""Write outgoing messages."""

0 commit comments

Comments
 (0)