diff --git a/src/OutputFileHandler.cc b/src/OutputFileHandler.cc
index 0c5530666bda14c46c80b0717bbe746d25181540..dba0aafdff5a3fa4d33a6b9548071e23700dd24f 100644
--- a/src/OutputFileHandler.cc
+++ b/src/OutputFileHandler.cc
@@ -103,11 +103,18 @@ void OutputFileHandler::CommitRun() {
   assert(current_index_ > 0 && nOrbitsPerFile_ > 0);
   int ls_index = 1 + (current_index_ * nOrbitsPerFile_) / constants::N_orbits_per_lumisection;
 
-  assert(ls_->lumisection == static_cast<uint32_t>(ls_index));
+  auto lumi_number = ls_->lumisection;
 
-  if (IsMainPipeline()) {
-    CommitLumisection();
-  }
+  LOG(INFO) << "Lumi " << std::to_string(ls_index)
+            << ". Assert that lumisection pointer exists: " << bool(ls_);
+  if (ls_) {
+    assert(lumi_number == static_cast<uint32_t>(ls_index));
+
+    if (IsMainPipeline()) {
+      LOG(INFO) << "Committing lumi EOLS before EoR can be written";
+      CommitLumisection();
+    }
 
-  sink_.WriteRunFooter(run_.number, run_.MakeFooter(ls_->lumisection));
+    sink_.WriteRunFooter(run_.number, run_.MakeFooter(lumi_number));
+  }
 }
\ No newline at end of file