From d43d176aec2f6626a2dce9e2f69aeef3c95f3ad2 Mon Sep 17 00:00:00 2001 From: ggurdin <46800240+ggurdin@users.noreply.github.com> Date: Wed, 29 Jan 2025 16:27:55 -0500 Subject: [PATCH] fix: Prevent Discarded unknown attribute error by using known attributes in breadcrumbs (#1638) --- lib/pangea/choreographer/controllers/choreographer.dart | 7 +++++-- lib/pangea/common/network/requests.dart | 2 +- lib/pangea/common/utils/any_state_holder.dart | 2 +- lib/pangea/common/utils/error_handler.dart | 2 +- .../event_wrappers/pangea_representation_event.dart | 8 ++++---- lib/pangea/extensions/room_events_extension.dart | 2 +- lib/pangea/toolbar/models/practice_activity_model.dart | 2 +- 7 files changed, 14 insertions(+), 11 deletions(-) diff --git a/lib/pangea/choreographer/controllers/choreographer.dart b/lib/pangea/choreographer/controllers/choreographer.dart index b8975690c..693cc5584 100644 --- a/lib/pangea/choreographer/controllers/choreographer.dart +++ b/lib/pangea/choreographer/controllers/choreographer.dart @@ -462,8 +462,11 @@ class Choreographer { } catch (err, stack) { debugger(when: kDebugMode); Sentry.addBreadcrumb( - Breadcrumb.fromJson( - {"igcTextData": igc.igcTextData?.toJson(), "offset": cursorOffset}, + Breadcrumb( + data: { + "igcTextData": igc.igcTextData?.toJson(), + "offset": cursorOffset, + }, ), ); ErrorHandler.logError( diff --git a/lib/pangea/common/network/requests.dart b/lib/pangea/common/network/requests.dart index d4f5fb6f9..444b7fa9a 100644 --- a/lib/pangea/common/network/requests.dart +++ b/lib/pangea/common/network/requests.dart @@ -98,7 +98,7 @@ class Requests { ), ); Sentry.addBreadcrumb( - Breadcrumb.fromJson({"body": body, "objectId": objectId}), + Breadcrumb(data: {"body": body, "objectId": objectId}), ); } diff --git a/lib/pangea/common/utils/any_state_holder.dart b/lib/pangea/common/utils/any_state_holder.dart index 6c885562e..dbd309a93 100644 --- a/lib/pangea/common/utils/any_state_holder.dart +++ b/lib/pangea/common/utils/any_state_holder.dart @@ -26,7 +26,7 @@ class PangeaAnyState { ]) { if (_layerLinkAndKeys[transformTargetId] == null) { if (throwErrorIfNotThere) { - Sentry.addBreadcrumb(Breadcrumb.fromJson(_layerLinkAndKeys)); + Sentry.addBreadcrumb(Breadcrumb(data: _layerLinkAndKeys)); throw Exception("layerLinkAndKey with null for $transformTargetId"); } else { _layerLinkAndKeys[transformTargetId] = diff --git a/lib/pangea/common/utils/error_handler.dart b/lib/pangea/common/utils/error_handler.dart index f1975af1b..c8c8b6483 100644 --- a/lib/pangea/common/utils/error_handler.dart +++ b/lib/pangea/common/utils/error_handler.dart @@ -69,7 +69,7 @@ class ErrorHandler { if (m != null) debugPrint("error message: $m"); } - Sentry.addBreadcrumb(Breadcrumb.fromJson(data)); + Sentry.addBreadcrumb(Breadcrumb(data: data)); debugPrint(data.toString()); Sentry.captureException( diff --git a/lib/pangea/events/event_wrappers/pangea_representation_event.dart b/lib/pangea/events/event_wrappers/pangea_representation_event.dart index 5fb41b9dd..91c4d3878 100644 --- a/lib/pangea/events/event_wrappers/pangea_representation_event.dart +++ b/lib/pangea/events/event_wrappers/pangea_representation_event.dart @@ -127,16 +127,16 @@ class RepresentationEvent { if (_event == null && timestamp.isAfter(DateTime(2024, 9, 25))) { Sentry.addBreadcrumb( - Breadcrumb.fromJson({ - 'message': + Breadcrumb( + message: 'representation with no _event and no tokens got tokens directly. This means an original_sent with no tokens. This should not happen in messages sent after September 25', - 'data': { + data: { 'content': content.toJson(), 'event': _event?.toJson(), 'timestamp': timestamp.toIso8601String(), 'senderID': senderID, }, - }), + ), ); } final List res = diff --git a/lib/pangea/extensions/room_events_extension.dart b/lib/pangea/extensions/room_events_extension.dart index a3021d623..fdb20da99 100644 --- a/lib/pangea/extensions/room_events_extension.dart +++ b/lib/pangea/extensions/room_events_extension.dart @@ -175,7 +175,7 @@ extension EventsRoomExtension on Room { required String type, }) async { try { - Sentry.addBreadcrumb(Breadcrumb.fromJson(content)); + Sentry.addBreadcrumb(Breadcrumb(data: content)); if (parentEventId.contains("web")) { debugger(when: kDebugMode); Sentry.addBreadcrumb( diff --git a/lib/pangea/toolbar/models/practice_activity_model.dart b/lib/pangea/toolbar/models/practice_activity_model.dart index 5367ef8dc..64704846d 100644 --- a/lib/pangea/toolbar/models/practice_activity_model.dart +++ b/lib/pangea/toolbar/models/practice_activity_model.dart @@ -43,7 +43,7 @@ class ConstructIdentifier { if (type == null) { Sentry.addBreadcrumb(Breadcrumb(message: "type is: ${json['type']}")); - Sentry.addBreadcrumb(Breadcrumb.fromJson(json)); + Sentry.addBreadcrumb(Breadcrumb(data: json)); throw Exception("Matching construct type not found"); }