diff --git a/flutter/lib/models/model.dart b/flutter/lib/models/model.dart index b1a270718..0bc22790a 100644 --- a/flutter/lib/models/model.dart +++ b/flutter/lib/models/model.dart @@ -628,7 +628,9 @@ class FfiModel with ChangeNotifier { /// Handle the peer info event based on [evt]. handlePeerInfo(Map evt, String peerId, bool isCache) async { - cachedPeerData.peerInfo = evt; + // Map clone is required here, otherwise "evt" may be changed by other threads through the reference. + // Because this function is asynchronous, there's an "await" in this function. + cachedPeerData.peerInfo = {...evt}; // recent peer updated by handle_peer_info(ui_session_interface.rs) --> handle_peer_info(client.rs) --> save_config(client.rs) bind.mainLoadRecentPeers();