From 6f258849153315a7b3947182ec7733d58479ad18 Mon Sep 17 00:00:00 2001 From: ggurdin <46800240+ggurdin@users.noreply.github.com> Date: Mon, 6 Jan 2025 12:23:23 -0500 Subject: [PATCH] fix: make representation warning into a breadcrumb, don't log error on tts cancelled or interupted (#1363) --- .../pangea_representation_event.dart | 21 ++++++++++--------- lib/pangea/widgets/chat/tts_controller.dart | 21 ++++++++++++------- 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/lib/pangea/matrix_event_wrappers/pangea_representation_event.dart b/lib/pangea/matrix_event_wrappers/pangea_representation_event.dart index d9e8c34b0..e7c28f4e8 100644 --- a/lib/pangea/matrix_event_wrappers/pangea_representation_event.dart +++ b/lib/pangea/matrix_event_wrappers/pangea_representation_event.dart @@ -123,16 +123,17 @@ class RepresentationEvent { if (tokens != null) return tokens!; if (_event == null && timestamp.isAfter(DateTime(2024, 9, 25))) { - ErrorHandler.logError( - m: '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', - s: StackTrace.current, - data: { - 'content': content.toJson(), - 'event': _event?.toJson(), - 'timestamp': timestamp.toIso8601String(), - 'senderID': senderID, - }, - level: SentryLevel.warning, + Sentry.addBreadcrumb( + Breadcrumb.fromJson({ + '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': { + 'content': content.toJson(), + 'event': _event?.toJson(), + 'timestamp': timestamp.toIso8601String(), + 'senderID': senderID, + }, + }), ); } final List res = diff --git a/lib/pangea/widgets/chat/tts_controller.dart b/lib/pangea/widgets/chat/tts_controller.dart index 1677e6a1b..4b5130f41 100644 --- a/lib/pangea/widgets/chat/tts_controller.dart +++ b/lib/pangea/widgets/chat/tts_controller.dart @@ -40,13 +40,20 @@ class TtsController { await _languageSubscription?.cancel(); } - void _onError(dynamic message) => ErrorHandler.logError( - e: message, - m: (message.toString().isNotEmpty) ? message.toString() : 'TTS error', - data: { - 'message': message, - }, - ); + void _onError(dynamic message) { + // the package treats this as an error, but it's not + // don't send to sentry + if (message == 'canceled' || message == 'interrupted') { + return; + } + + ErrorHandler.logError( + e: 'TTS error', + data: { + 'message': message, + }, + ); + } Future setupTTS() async { try {