From 929d525c138bec46a02f38ed129722732827ed53 Mon Sep 17 00:00:00 2001 From: Tommy Chow Date: Sat, 7 Mar 2026 20:46:40 -0800 Subject: [PATCH] add error handling to getRecentMessage and getAssets in chat store getRecentMessage had no try/catch, so a failure from the third-party API would silently prevent connectToChat from ever being called. getAssets was fire-and-forget without a catchError, risking uncaught Future errors. Co-Authored-By: Claude Opus 4.6 --- .../channel/chat/stores/chat_store.dart | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/lib/screens/channel/chat/stores/chat_store.dart b/lib/screens/channel/chat/stores/chat_store.dart index 3bf996c7..d0c020b4 100644 --- a/lib/screens/channel/chat/stores/chat_store.dart +++ b/lib/screens/channel/chat/stores/chat_store.dart @@ -875,7 +875,9 @@ abstract class ChatStoreBase with Store { @action Future connectToChat({bool isReconnect = false}) async { // Fetch assets first so they're available for all messages - getAssets(); + getAssets().catchError( + (e) => debugPrint('Failed to fetch chat assets: $e'), + ); // Cancel existing listener to prevent duplicate message processing _channelListener?.cancel(); @@ -1301,12 +1303,16 @@ abstract class ChatStoreBase with Store { @action Future getRecentMessage() async { - final recentMessages = await twitchApi.getRecentMessages( - userLogin: channelName, - ); + try { + final recentMessages = await twitchApi.getRecentMessages( + userLogin: channelName, + ); - for (final message in recentMessages) { - _handleIRCData(message); + for (final message in recentMessages) { + _handleIRCData(message); + } + } catch (e) { + debugPrint('Failed to fetch recent messages: $e'); } }