diff --git a/src/jamidht/jamiaccount.cpp b/src/jamidht/jamiaccount.cpp
index 1895e02a92e5da45266e21159f20e197a4ad979a..ae7f15840584599f5b701b39b27f2bfbfeaee2d8 100644
--- a/src/jamidht/jamiaccount.cpp
+++ b/src/jamidht/jamiaccount.cpp
@@ -610,7 +610,7 @@ JamiAccount::startOutgoingCall(const std::shared_ptr<SIPCall>& call, const std::
             dev_call->setIceMedia(call->getIceMedia());
             {
                 std::lock_guard<std::mutex> lk(pendingCallsMutex_);
-                pendingCalls_[deviceId].emplace_back(dev_call);
+                pendingCalls_[deviceId].emplace_back(std::move(dev_call));
             }
 
             JAMI_WARN("[call %s] No channeled socket with this peer. Send request",
@@ -707,7 +707,9 @@ JamiAccount::startOutgoingCall(const std::shared_ptr<SIPCall>& call, const std::
             if (not ok) {
                 if (auto call = wCall.lock()) {
                     JAMI_WARN("[call:%s] no devices found", call->getCallId().c_str());
-                    call->onFailure(static_cast<int>(std::errc::no_such_device_or_address));
+                    // Note: if a p2p connection exists, the call will be at least in CONNECTING
+                    if (call->getConnectionState() == Call::ConnectionState::TRYING)
+                        call->onFailure(static_cast<int>(std::errc::no_such_device_or_address));
                 }
             }
         });