diff --git a/src/orbit_processor.cc b/src/orbit_processor.cc
index 361598630652bd13c26b1a4055ee5a564103012e..92937df21d2f6a436431e9aec7e41253d85258ed 100644
--- a/src/orbit_processor.cc
+++ b/src/orbit_processor.cc
@@ -105,7 +105,7 @@ OrbitProcessor::FillOrbitMetadata OrbitProcessor::FillOrbit(orbit_trailer *trail
   // TODO: we might want to return an empty slice in order to avoid unexepected files/events
   // TODO: to appear and that would let CMSSW crash
   std::pair<uint32_t, bool> orbit_header = std::pair<uint32_t, bool>{ProcessOrbitHeader(rd_ptr)};
-  uint32_t orbit = uint32_t{orbit_header.first};  
+  uint32_t orbit = uint32_t{orbit_header.first};
   if (orbit <= 0) return{0, 0, 0};
   //.second is the warning test enable bit
   rd_ptr += 32;  // +32 to account for orbit header
@@ -191,6 +191,10 @@ void OrbitProcessor::ProcessSliceImpl(Slice &input, Slice &out) {
     }
 
     meta = FillOrbit(trailer, rd_ptr, wr_ptr, rd_end_ptr, wr_end_ptr);
+    if (meta.orbit<=0) {
+      LOG(WARNING) << "Invalid orbit number " << meta.orbit << ". Skipping packet...";
+      return;
+    }
     orbitCount = meta.counts;
     ++orbit_per_packet_count;