diff --git a/catalogue/OracleCatalogue.cpp b/catalogue/OracleCatalogue.cpp
index 687d8f53eef26872cc5bd2762663c93768577c5c..76f8fb9e3b164ae24c22b7547ac965574c3667cd 100644
--- a/catalogue/OracleCatalogue.cpp
+++ b/catalogue/OracleCatalogue.cpp
@@ -377,8 +377,11 @@ void OracleCatalogue::filesWrittenToTape(const std::set<TapeItemWrittenPointer>
     const TapeItemWritten &lastEvent = **lastEventItor;
     updateTape(conn, lastEvent.vid, lastEvent.fSeq, totalCompressedBytesWritten, lastEvent.tapeDrive);
 
-    // If we had only placeholders and no file recorded, we are done.
-    if (fileEvents.empty()) return;
+    // If we had only placeholders and no file recorded, we are done (but we still commit the update of the tape's fSeq).
+    if (fileEvents.empty()) {
+      conn.commit();
+      return;
+    }
     
     // Create the archive file entries, skipping those that already exist
     idempotentBatchInsertArchiveFiles(conn, fileEvents);