diff --git a/src/libsync/propagateremotemove.cpp b/src/libsync/propagateremotemove.cpp index 401a8f27bf124..6d2c0a229b047 100644 --- a/src/libsync/propagateremotemove.cpp +++ b/src/libsync/propagateremotemove.cpp @@ -217,7 +217,19 @@ void PropagateRemoteMove::slotMoveJobFinished() qCWarning(lcPropagateRemoteMove) << "Could not MOVE file" << filePathOriginal << " to" << filePath << " with error:" << _job->errorString() << " and successfully restored it."; + + auto restoredItem = *_item; + restoredItem._renameTarget = _item->_originalFile; + const auto result = propagator()->updateMetadata(restoredItem); + if (!result) { + done(SyncFileItem::FatalError, tr("Error updating metadata: %1").arg(result.error()), ErrorCategory::GenericError); + return; + } else if (*result == Vfs::ConvertToPlaceholderResult::Locked) { + done(SyncFileItem::SoftError, tr("The file %1 is currently in use").arg(restoredItem._file), ErrorCategory::GenericError); + return; + } } + done(status, _job->errorString(), ErrorCategory::GenericError); return; }