diff --git a/src/data_transfer.cpp b/src/data_transfer.cpp
index 49773e45a72303176d993eaf2f7e058fb832e0cc..f7b2a446529aa29a4c25c25d60033d5638e9cf3f 100644
--- a/src/data_transfer.cpp
+++ b/src/data_transfer.cpp
@@ -778,6 +778,12 @@ OutgoingFile::process()
     } catch (...) {
     }
     if (!isUserCancelled_) {
+        // NOTE: emit(code) MUST be changed to improve handling of multiple destinations
+        // But for now, we can just avoid to emit errors to the client, because for outgoing
+        // transfer in a swarm, for outgoingFiles, we know that the file is ok. And the peer
+        // will retry the transfer if they need, so we don't need to show errors.
+        if (interactionId_.empty() && !correct)
+            return;
         auto code = correct ? DRing::DataTransferEventCode::finished
                             : DRing::DataTransferEventCode::closed_by_peer;
         emit(code);