diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/ETLDaemon.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/ETLDaemon.java
index 47b3fca0c4fb332a72f0d21a7c25f5951d567649..522785d12226e9851a358efef9119b094c967b39 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/ETLDaemon.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/ETLDaemon.java
@@ -610,7 +610,7 @@ public final class ETLDaemon
                     if (scannedStore.existsOrError(storeItem))
                     {
                         StringBuffer sb = new StringBuffer();
-                        sb.append("The thread configuration setting"
+                        sb.append("The thread configuration setting "
                                 + ch.systemsx.cisd.etlserver.ThreadParameters.REPROCESS_FAULTY_DATASETS_NAME
                                 + " = true.");
                         sb.append(" File "
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageAlgorithmRunner.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageAlgorithmRunner.java
index 7a83552a4610558894ddadc90d0575ea457ab022..f64ed0be0eabc55b8ef30b78a454174229ff6fbc 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageAlgorithmRunner.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageAlgorithmRunner.java
@@ -475,7 +475,11 @@ public class DataSetStorageAlgorithmRunner<T extends DataSetInformation>
 
     private void rollbackDuringMetadataRegistration(Throwable ex)
     {
-        operationLog.error("Failed to register metadata", ex);
+        if (false == ex instanceof IncomingFileDeletedBeforeRegistrationException)
+        {
+            // Don't log if the file was deleted before registration, we already know.
+            operationLog.error("Failed to register metadata", ex);
+        }
         rollbackStorageProcessors(ex);
         rollbackDelegate.didRollbackStorageAlgorithmRunner(this, ex,
                 ErrorType.OPENBIS_REGISTRATION_FAILURE);
@@ -576,8 +580,10 @@ public class DataSetStorageAlgorithmRunner<T extends DataSetInformation>
         {
             result = registerData(registrationId, registrationData);
         }
-
-        dssRegistrationLog.log("Data has been registered with the openBIS Application Server.");
+        if (result)
+        {
+            dssRegistrationLog.log("Data has been registered with the openBIS Application Server.");
+        }
         return result;
     }
 
@@ -621,6 +627,14 @@ public class DataSetStorageAlgorithmRunner<T extends DataSetInformation>
                     applicationServerRegistrator.registerDataSetsInApplicationServer(
                             registrationId, registrationData);
                     return true;
+                } catch (IncomingFileDeletedBeforeRegistrationException e)
+                {
+                    operationLog
+                            .warn("The incoming file was deleted before registration. Nothing was registered in openBIS.");
+                    dssRegistrationLog
+                            .log("The incoming file was deleted before registration. Nothing was registered in openBIS.");
+                    rollbackDuringMetadataRegistration(e);
+                    return false;
                 } catch (final Throwable exception)
                 {
                     operationLog.error("Error in registrating data in application server",
@@ -753,8 +767,12 @@ public class DataSetStorageAlgorithmRunner<T extends DataSetInformation>
 
     private void rollbackStorageProcessors(Throwable ex)
     {
-        operationLog.error(
-                "Error during dataset registration: " + ExceptionUtils.getRootCauseMessage(ex), ex);
+        if (false == ex instanceof IncomingFileDeletedBeforeRegistrationException)
+        {
+            operationLog.error(
+                    "Error during dataset registration: " + ExceptionUtils.getRootCauseMessage(ex),
+                    ex);
+        }
 
         // Errors which are not AssertionErrors leave the system in a state that we don't
         // know and can't trust. Thus we will not perform any operations any more in this
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransaction.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransaction.java
index c726722064bc90ede518eeeee6705feceae1e140..354de43a9facc00ec1751021afbf64169a3a8bf0 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransaction.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransaction.java
@@ -504,8 +504,11 @@ public class DataSetRegistrationTransaction<T extends DataSetInformation> implem
     public void didRollbackStorageAlgorithmRunner(DataSetStorageAlgorithmRunner<T> algorithm,
             Throwable ex, ErrorType errorType)
     {
-
-        operationLog.error("The error ", ex);
+        if (false == ex instanceof IncomingFileDeletedBeforeRegistrationException)
+        {
+            // Don't log if the file was deleted before registration, we already know.
+            operationLog.error("The error ", ex);
+        }
         boolean useAutoRecovery = autoRecoverySettings == AutoRecoverySettings.USE_AUTO_RECOVERY;
 
         IDataSetStorageRecoveryManager storageRecoveryManager =