From a74d7590619bda969ef9d1a271e809acf8f786e8 Mon Sep 17 00:00:00 2001 From: Alexazhu Date: Sat, 18 Apr 2026 15:32:24 +0800 Subject: [PATCH] fix(bluebubbles): preserve exception traceback in webhook parse error The webhook handler's form/JSON parse fallback (`_handle_webhook`) logs the `Exception` raised while decoding the inbound payload but drops the traceback. When a malformed or unexpected payload shape arrives from the BlueBubbles server in production, we see: [bluebubbles] webhook parse error: ... with no call-site. Add `exc_info=True` so the stack is preserved. --- gateway/platforms/bluebubbles.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gateway/platforms/bluebubbles.py b/gateway/platforms/bluebubbles.py index a8a29296982..1fd7749e0ca 100644 --- a/gateway/platforms/bluebubbles.py +++ b/gateway/platforms/bluebubbles.py @@ -775,7 +775,7 @@ class BlueBubblesAdapter(BasePlatformAdapter): )[0] payload = json.loads(payload_str) if payload_str else {} except Exception as exc: - logger.error("[bluebubbles] webhook parse error: %s", exc) + logger.error("[bluebubbles] webhook parse error: %s", exc, exc_info=True) return web.json_response({"error": "invalid payload"}, status=400) event_type = self._value(payload.get("type"), payload.get("event")) or ""