diff --git a/Event/LumiEvent/src/HltLumiSummaryDecoder.cpp b/Event/LumiEvent/src/HltLumiSummaryDecoder.cpp
index 4453a9fa3666de552c6041aebaf372ada13bf530..f96e6b588ec573731b47b9b9bd8dc7f282e34369 100644
--- a/Event/LumiEvent/src/HltLumiSummaryDecoder.cpp
+++ b/Event/LumiEvent/src/HltLumiSummaryDecoder.cpp
@@ -68,7 +68,7 @@ namespace LHCb {
           warning() << "Unsupported HltLumiSummary version: " << format( "%4d", ibank->version() ) << endmsg;
         } else if ( ibank->version() == 1 ) {
           // initial Run 3 version
-          if ( ibank->size() != LHCb::LumiSummaryOffsets::V1::TotalSize ) {
+          if ( ibank->size() != LHCb::LumiSummaryOffsets::V1::TotalSize / 8 ) {
             warning() << "Bank size incorrect for HltLumiSummary V1: expected "
                       << format( "%4d", LHCb::LumiSummaryOffsets::V1::TotalSize ) << ", found "
                       << format( "%4d", ibank->size() ) << endmsg;
@@ -106,97 +106,118 @@ namespace LHCb {
         } else if ( ibank->version() == 2 ) {
           auto encodingKey = getField( LHCb::LumiSummaryOffsets::V2::encodingKeyOffset,
                                        LHCb::LumiSummaryOffsets::V2::encodingKeySize, ibank->data() );
-          if ( encodingKey != 0 ) {
+          if ( encodingKey != 0x4c30049d ) { // This encoding key is the hash of the JSON representation of the initial
+                                             // fixed V2 schema
             auto lumi_schema = m_svc->lumiCounters( encodingKey, 2 );
-            for ( auto cntr : lumi_schema.counters ) {
-              hltLumiSummary.addInfo( cntr.name, getField( cntr.offset, cntr.size, ibank->data() ) );
+            if ( ibank->size() != lumi_schema.size ) {
+              warning() << "Bank size incorrect for HltLumiSummary V2: expected " << format( "%4d", lumi_schema.size )
+                        << " for encoding key " << format( "%8x", encodingKey ) << ", found "
+                        << format( "%4d", ibank->size() ) << endmsg;
+            } else {
+              for ( auto cntr : lumi_schema.counters ) {
+                hltLumiSummary.addInfo( cntr.name, getField( cntr.offset, cntr.size, ibank->data() ) );
+              }
             }
           } else {
-            if ( ibank->size() != LHCb::LumiSummaryOffsets::V2::TotalSize ) {
+            if ( ibank->size() != LHCb::LumiSummaryOffsets::V2::TotalSize / 8 ) {
               warning() << "Bank size incorrect for HltLumiSummary V2: expected "
                         << format( "%4d", LHCb::LumiSummaryOffsets::V2::TotalSize ) << ", found "
                         << format( "%4d", ibank->size() ) << endmsg;
+            } else {
+              hltLumiSummary.addInfo( "T0Low", getField( LHCb::LumiSummaryOffsets::V2::t0LowOffset,
+                                                         LHCb::LumiSummaryOffsets::V2::t0LowSize, ibank->data() ) );
+              hltLumiSummary.addInfo( "T0High", getField( LHCb::LumiSummaryOffsets::V2::t0HighOffset,
+                                                          LHCb::LumiSummaryOffsets::V2::t0HighSize, ibank->data() ) );
+              hltLumiSummary.addInfo( "BCIDLow", getField( LHCb::LumiSummaryOffsets::V2::bcidLowOffset,
+                                                           LHCb::LumiSummaryOffsets::V2::bcidLowSize, ibank->data() ) );
+              hltLumiSummary.addInfo( "BCIDHigh",
+                                      getField( LHCb::LumiSummaryOffsets::V2::bcidHighOffset,
+                                                LHCb::LumiSummaryOffsets::V2::bcidHighSize, ibank->data() ) );
+              hltLumiSummary.addInfo( "BXType", getField( LHCb::LumiSummaryOffsets::V2::bxTypeOffset,
+                                                          LHCb::LumiSummaryOffsets::V2::bxTypeSize, ibank->data() ) );
+              hltLumiSummary.addInfo( "GEC", getField( LHCb::LumiSummaryOffsets::V2::GecOffset,
+                                                       LHCb::LumiSummaryOffsets::V2::GecSize, ibank->data() ) );
+              hltLumiSummary.addInfo( "VeloTracks",
+                                      getField( LHCb::LumiSummaryOffsets::V2::VeloTracksOffset,
+                                                LHCb::LumiSummaryOffsets::V2::VeloTracksSize, ibank->data() ) );
+              hltLumiSummary.addInfo( "VeloVertices",
+                                      getField( LHCb::LumiSummaryOffsets::V2::VeloVerticesOffset,
+                                                LHCb::LumiSummaryOffsets::V2::VeloVerticesSize, ibank->data() ) );
+              hltLumiSummary.addInfo( "SciFiClustersS1M45",
+                                      getField( LHCb::LumiSummaryOffsets::V2::SciFiM45S1Offset,
+                                                LHCb::LumiSummaryOffsets::V2::SciFiM45S1Size, ibank->data() ) );
+              hltLumiSummary.addInfo( "SciFiClustersS2M45",
+                                      getField( LHCb::LumiSummaryOffsets::V2::SciFiM45S2Offset,
+                                                LHCb::LumiSummaryOffsets::V2::SciFiM45S2Size, ibank->data() ) );
+              hltLumiSummary.addInfo( "SciFiClustersS3M45",
+                                      getField( LHCb::LumiSummaryOffsets::V2::SciFiM45S3Offset,
+                                                LHCb::LumiSummaryOffsets::V2::SciFiM45S3Size, ibank->data() ) );
+              hltLumiSummary.addInfo( "SciFiClusters",
+                                      getField( LHCb::LumiSummaryOffsets::V2::SciFiClustersOffset,
+                                                LHCb::LumiSummaryOffsets::V2::SciFiClustersSize, ibank->data() ) );
+              hltLumiSummary.addInfo( "SciFiClustersS2M123",
+                                      getField( LHCb::LumiSummaryOffsets::V2::SciFiM123S2Offset,
+                                                LHCb::LumiSummaryOffsets::V2::SciFiM123S2Size, ibank->data() ) );
+              hltLumiSummary.addInfo( "SciFiClustersS3M123",
+                                      getField( LHCb::LumiSummaryOffsets::V2::SciFiM123S3Offset,
+                                                LHCb::LumiSummaryOffsets::V2::SciFiM123S3Size, ibank->data() ) );
+              hltLumiSummary.addInfo( "ECalET", getField( LHCb::LumiSummaryOffsets::V2::ECalETOffset,
+                                                          LHCb::LumiSummaryOffsets::V2::ECalETSize, ibank->data() ) );
+              hltLumiSummary.addInfo( "ECalEInnerTop",
+                                      getField( LHCb::LumiSummaryOffsets::V2::ECalEITOffset,
+                                                LHCb::LumiSummaryOffsets::V2::ECalEITSize, ibank->data() ) );
+              hltLumiSummary.addInfo( "ECalEInnerBottom",
+                                      getField( LHCb::LumiSummaryOffsets::V2::ECalEIBOffset,
+                                                LHCb::LumiSummaryOffsets::V2::ECalEIBSize, ibank->data() ) );
+              hltLumiSummary.addInfo( "ECalEMiddleTop",
+                                      getField( LHCb::LumiSummaryOffsets::V2::ECalEMTOffset,
+                                                LHCb::LumiSummaryOffsets::V2::ECalEMTSize, ibank->data() ) );
+              hltLumiSummary.addInfo( "ECalEMiddleBottom",
+                                      getField( LHCb::LumiSummaryOffsets::V2::ECalEMBOffset,
+                                                LHCb::LumiSummaryOffsets::V2::ECalEMBSize, ibank->data() ) );
+              hltLumiSummary.addInfo( "ECalEOuterTop",
+                                      getField( LHCb::LumiSummaryOffsets::V2::ECalEOTOffset,
+                                                LHCb::LumiSummaryOffsets::V2::ECalEOTSize, ibank->data() ) );
+              hltLumiSummary.addInfo( "ECalEOuterBottom",
+                                      getField( LHCb::LumiSummaryOffsets::V2::ECalEOBOffset,
+                                                LHCb::LumiSummaryOffsets::V2::ECalEOBSize, ibank->data() ) );
+              hltLumiSummary.addInfo( "MuonHitsM2R1",
+                                      getField( LHCb::LumiSummaryOffsets::V2::M2R1Offset,
+                                                LHCb::LumiSummaryOffsets::V2::M2R1Size, ibank->data() ) );
+              hltLumiSummary.addInfo( "MuonHitsM2R2",
+                                      getField( LHCb::LumiSummaryOffsets::V2::M2R2Offset,
+                                                LHCb::LumiSummaryOffsets::V2::M2R2Size, ibank->data() ) );
+              hltLumiSummary.addInfo( "MuonHitsM2R3",
+                                      getField( LHCb::LumiSummaryOffsets::V2::M2R3Offset,
+                                                LHCb::LumiSummaryOffsets::V2::M2R3Size, ibank->data() ) );
+              hltLumiSummary.addInfo( "MuonHitsM2R4",
+                                      getField( LHCb::LumiSummaryOffsets::V2::M2R4Offset,
+                                                LHCb::LumiSummaryOffsets::V2::M2R4Size, ibank->data() ) );
+              hltLumiSummary.addInfo( "MuonHitsM3R1",
+                                      getField( LHCb::LumiSummaryOffsets::V2::M3R1Offset,
+                                                LHCb::LumiSummaryOffsets::V2::M3R1Size, ibank->data() ) );
+              hltLumiSummary.addInfo( "MuonHitsM3R2",
+                                      getField( LHCb::LumiSummaryOffsets::V2::M3R2Offset,
+                                                LHCb::LumiSummaryOffsets::V2::M3R2Size, ibank->data() ) );
+              hltLumiSummary.addInfo( "MuonHitsM3R3",
+                                      getField( LHCb::LumiSummaryOffsets::V2::M3R3Offset,
+                                                LHCb::LumiSummaryOffsets::V2::M3R3Size, ibank->data() ) );
+              hltLumiSummary.addInfo( "MuonHitsM3R4",
+                                      getField( LHCb::LumiSummaryOffsets::V2::M3R4Offset,
+                                                LHCb::LumiSummaryOffsets::V2::M3R4Size, ibank->data() ) );
+              hltLumiSummary.addInfo( "MuonHitsM4R1",
+                                      getField( LHCb::LumiSummaryOffsets::V2::M4R1Offset,
+                                                LHCb::LumiSummaryOffsets::V2::M4R1Size, ibank->data() ) );
+              hltLumiSummary.addInfo( "MuonHitsM4R2",
+                                      getField( LHCb::LumiSummaryOffsets::V2::M4R2Offset,
+                                                LHCb::LumiSummaryOffsets::V2::M4R2Size, ibank->data() ) );
+              hltLumiSummary.addInfo( "MuonHitsM4R3",
+                                      getField( LHCb::LumiSummaryOffsets::V2::M4R3Offset,
+                                                LHCb::LumiSummaryOffsets::V2::M4R3Size, ibank->data() ) );
+              hltLumiSummary.addInfo( "MuonHitsM4R4",
+                                      getField( LHCb::LumiSummaryOffsets::V2::M4R4Offset,
+                                                LHCb::LumiSummaryOffsets::V2::M4R4Size, ibank->data() ) );
             }
-            hltLumiSummary.addInfo( "T0Low", getField( LHCb::LumiSummaryOffsets::V2::t0LowOffset,
-                                                       LHCb::LumiSummaryOffsets::V2::t0LowSize, ibank->data() ) );
-            hltLumiSummary.addInfo( "T0High", getField( LHCb::LumiSummaryOffsets::V2::t0HighOffset,
-                                                        LHCb::LumiSummaryOffsets::V2::t0HighSize, ibank->data() ) );
-            hltLumiSummary.addInfo( "BCIDLow", getField( LHCb::LumiSummaryOffsets::V2::bcidLowOffset,
-                                                         LHCb::LumiSummaryOffsets::V2::bcidLowSize, ibank->data() ) );
-            hltLumiSummary.addInfo( "BCIDHigh", getField( LHCb::LumiSummaryOffsets::V2::bcidHighOffset,
-                                                          LHCb::LumiSummaryOffsets::V2::bcidHighSize, ibank->data() ) );
-            hltLumiSummary.addInfo( "BXType", getField( LHCb::LumiSummaryOffsets::V2::bxTypeOffset,
-                                                        LHCb::LumiSummaryOffsets::V2::bxTypeSize, ibank->data() ) );
-            hltLumiSummary.addInfo( "GEC", getField( LHCb::LumiSummaryOffsets::V2::GecOffset,
-                                                     LHCb::LumiSummaryOffsets::V2::GecSize, ibank->data() ) );
-            hltLumiSummary.addInfo( "VeloTracks",
-                                    getField( LHCb::LumiSummaryOffsets::V2::VeloTracksOffset,
-                                              LHCb::LumiSummaryOffsets::V2::VeloTracksSize, ibank->data() ) );
-            hltLumiSummary.addInfo( "VeloVertices",
-                                    getField( LHCb::LumiSummaryOffsets::V2::VeloVerticesOffset,
-                                              LHCb::LumiSummaryOffsets::V2::VeloVerticesSize, ibank->data() ) );
-            hltLumiSummary.addInfo( "SciFiClustersS1M45",
-                                    getField( LHCb::LumiSummaryOffsets::V2::SciFiM45S1Offset,
-                                              LHCb::LumiSummaryOffsets::V2::SciFiM45S1Size, ibank->data() ) );
-            hltLumiSummary.addInfo( "SciFiClustersS2M45",
-                                    getField( LHCb::LumiSummaryOffsets::V2::SciFiM45S2Offset,
-                                              LHCb::LumiSummaryOffsets::V2::SciFiM45S2Size, ibank->data() ) );
-            hltLumiSummary.addInfo( "SciFiClustersS3M45",
-                                    getField( LHCb::LumiSummaryOffsets::V2::SciFiM45S3Offset,
-                                              LHCb::LumiSummaryOffsets::V2::SciFiM45S3Size, ibank->data() ) );
-            hltLumiSummary.addInfo( "SciFiClusters",
-                                    getField( LHCb::LumiSummaryOffsets::V2::SciFiClustersOffset,
-                                              LHCb::LumiSummaryOffsets::V2::SciFiClustersSize, ibank->data() ) );
-            hltLumiSummary.addInfo( "SciFiClustersS2M123",
-                                    getField( LHCb::LumiSummaryOffsets::V2::SciFiM123S2Offset,
-                                              LHCb::LumiSummaryOffsets::V2::SciFiM123S2Size, ibank->data() ) );
-            hltLumiSummary.addInfo( "SciFiClustersS3M123",
-                                    getField( LHCb::LumiSummaryOffsets::V2::SciFiM123S3Offset,
-                                              LHCb::LumiSummaryOffsets::V2::SciFiM123S3Size, ibank->data() ) );
-            hltLumiSummary.addInfo( "ECalET", getField( LHCb::LumiSummaryOffsets::V2::ECalETOffset,
-                                                        LHCb::LumiSummaryOffsets::V2::ECalETSize, ibank->data() ) );
-            hltLumiSummary.addInfo( "ECalEInnerTop",
-                                    getField( LHCb::LumiSummaryOffsets::V2::ECalEITOffset,
-                                              LHCb::LumiSummaryOffsets::V2::ECalEITSize, ibank->data() ) );
-            hltLumiSummary.addInfo( "ECalEInnerBottom",
-                                    getField( LHCb::LumiSummaryOffsets::V2::ECalEIBOffset,
-                                              LHCb::LumiSummaryOffsets::V2::ECalEIBSize, ibank->data() ) );
-            hltLumiSummary.addInfo( "ECalEMiddleTop",
-                                    getField( LHCb::LumiSummaryOffsets::V2::ECalEMTOffset,
-                                              LHCb::LumiSummaryOffsets::V2::ECalEMTSize, ibank->data() ) );
-            hltLumiSummary.addInfo( "ECalEMiddleBottom",
-                                    getField( LHCb::LumiSummaryOffsets::V2::ECalEMBOffset,
-                                              LHCb::LumiSummaryOffsets::V2::ECalEMBSize, ibank->data() ) );
-            hltLumiSummary.addInfo( "ECalEOuterTop",
-                                    getField( LHCb::LumiSummaryOffsets::V2::ECalEOTOffset,
-                                              LHCb::LumiSummaryOffsets::V2::ECalEOTSize, ibank->data() ) );
-            hltLumiSummary.addInfo( "ECalEOuterBottom",
-                                    getField( LHCb::LumiSummaryOffsets::V2::ECalEOBOffset,
-                                              LHCb::LumiSummaryOffsets::V2::ECalEOBSize, ibank->data() ) );
-            hltLumiSummary.addInfo( "MuonHitsM2R1", getField( LHCb::LumiSummaryOffsets::V2::M2R1Offset,
-                                                              LHCb::LumiSummaryOffsets::V2::M2R1Size, ibank->data() ) );
-            hltLumiSummary.addInfo( "MuonHitsM2R2", getField( LHCb::LumiSummaryOffsets::V2::M2R2Offset,
-                                                              LHCb::LumiSummaryOffsets::V2::M2R2Size, ibank->data() ) );
-            hltLumiSummary.addInfo( "MuonHitsM2R3", getField( LHCb::LumiSummaryOffsets::V2::M2R3Offset,
-                                                              LHCb::LumiSummaryOffsets::V2::M2R3Size, ibank->data() ) );
-            hltLumiSummary.addInfo( "MuonHitsM2R4", getField( LHCb::LumiSummaryOffsets::V2::M2R4Offset,
-                                                              LHCb::LumiSummaryOffsets::V2::M2R4Size, ibank->data() ) );
-            hltLumiSummary.addInfo( "MuonHitsM3R1", getField( LHCb::LumiSummaryOffsets::V2::M3R1Offset,
-                                                              LHCb::LumiSummaryOffsets::V2::M3R1Size, ibank->data() ) );
-            hltLumiSummary.addInfo( "MuonHitsM3R2", getField( LHCb::LumiSummaryOffsets::V2::M3R2Offset,
-                                                              LHCb::LumiSummaryOffsets::V2::M3R2Size, ibank->data() ) );
-            hltLumiSummary.addInfo( "MuonHitsM3R3", getField( LHCb::LumiSummaryOffsets::V2::M3R3Offset,
-                                                              LHCb::LumiSummaryOffsets::V2::M3R3Size, ibank->data() ) );
-            hltLumiSummary.addInfo( "MuonHitsM3R4", getField( LHCb::LumiSummaryOffsets::V2::M3R4Offset,
-                                                              LHCb::LumiSummaryOffsets::V2::M3R4Size, ibank->data() ) );
-            hltLumiSummary.addInfo( "MuonHitsM4R1", getField( LHCb::LumiSummaryOffsets::V2::M4R1Offset,
-                                                              LHCb::LumiSummaryOffsets::V2::M4R1Size, ibank->data() ) );
-            hltLumiSummary.addInfo( "MuonHitsM4R2", getField( LHCb::LumiSummaryOffsets::V2::M4R2Offset,
-                                                              LHCb::LumiSummaryOffsets::V2::M4R2Size, ibank->data() ) );
-            hltLumiSummary.addInfo( "MuonHitsM4R3", getField( LHCb::LumiSummaryOffsets::V2::M4R3Offset,
-                                                              LHCb::LumiSummaryOffsets::V2::M4R3Size, ibank->data() ) );
-            hltLumiSummary.addInfo( "MuonHitsM4R4", getField( LHCb::LumiSummaryOffsets::V2::M4R4Offset,
-                                                              LHCb::LumiSummaryOffsets::V2::M4R4Size, ibank->data() ) );
           }
         } else {
           warning() << "Unknown HltLumiSummary version: " << format( "%4d", ibank->version() ) << endmsg;