diff --git a/Trigger/TrigT1/L1CaloFEX/L1CaloFEXByteStream/src/jFexInputByteStreamTool.cxx b/Trigger/TrigT1/L1CaloFEX/L1CaloFEXByteStream/src/jFexInputByteStreamTool.cxx
index d32d25489f84403a23625e59218f364bb85c066f..fca43a5481a17f5be40d651b77e13e04257a5965 100644
--- a/Trigger/TrigT1/L1CaloFEX/L1CaloFEXByteStream/src/jFexInputByteStreamTool.cxx
+++ b/Trigger/TrigT1/L1CaloFEX/L1CaloFEXByteStream/src/jFexInputByteStreamTool.cxx
@@ -70,6 +70,7 @@ StatusCode jFexInputByteStreamTool::convertFromBS(const std::vector<const ROBF*>
     ATH_CHECK(jTowersContainer.record(std::make_unique<xAOD::jFexTowerContainer>(), std::make_unique<xAOD::jFexTowerAuxContainer>()));
     ATH_MSG_DEBUG("Recorded jFexTowerContainer with key " << jTowersContainer.key());
     
+    
 
     // Iterate over ROBFragments to decode
     for (const ROBF* rob : vrobf) {
@@ -86,7 +87,6 @@ StatusCode jFexInputByteStreamTool::convertFromBS(const std::vector<const ROBF*>
         
         const auto dataArray = CxxUtils::span{rob->rod_data(), rob->rod_ndata()};
         std::vector<uint32_t> vec_words(dataArray.begin(),dataArray.end());
-
         
         // jFEX to ROD trailer position
         unsigned int trailers_pos = rob->rod_ndata();
@@ -95,6 +95,11 @@ StatusCode jFexInputByteStreamTool::convertFromBS(const std::vector<const ROBF*>
         bool READ_WORDS = true;
         while(READ_WORDS){
             
+            if( trailers_pos < jBits::jFEX2ROD_WORDS ){
+                ATH_MSG_WARNING("There are not enough words ("<< trailers_pos <<") for the jFEX to ROD trailer decoder. Expected at least " << jBits::jFEX2ROD_WORDS<<". Skipping this FPGA(?)");
+                READ_WORDS = false;
+                continue;
+            }
             const auto [payload, jfex, fpga]                      = jFEXtoRODTrailer  ( vec_words.at(trailers_pos-2), vec_words.at(trailers_pos-1) );
             
             if(payload % jBits::DATA_BLOCKS != 0){
@@ -117,7 +122,7 @@ StatusCode jFexInputByteStreamTool::convertFromBS(const std::vector<const ROBF*>
                ATH_MSG_ERROR(C.B_RED<<"Block size error in fragment 0x"<< std::hex << rob->rob_source_id() << std::dec<<". Words available: " << trailers_pos << ". Number of words wanted to decode: " << Max_iter <<C.END);
                return StatusCode::FAILURE;
             }
-                        
+            
             for (unsigned int iblock = 0; iblock < Max_iter; iblock++){
                 const auto [channel, saturation] = BulkStreamTrailer(vec_words.at(wordIndex-1),vec_words.at(wordIndex-2));
                 
diff --git a/Trigger/TrigT1/L1CaloFEX/L1CaloFEXByteStream/src/jFexInputByteStreamTool.h b/Trigger/TrigT1/L1CaloFEX/L1CaloFEXByteStream/src/jFexInputByteStreamTool.h
index 1dea4104ba76821449565b89d5a7bd3117890e01..af18612ca83b4ab3c1dc8e75642a09fcb15fa55a 100644
--- a/Trigger/TrigT1/L1CaloFEX/L1CaloFEXByteStream/src/jFexInputByteStreamTool.h
+++ b/Trigger/TrigT1/L1CaloFEX/L1CaloFEXByteStream/src/jFexInputByteStreamTool.h
@@ -75,8 +75,6 @@ class jFexInputByteStreamTool : public extends<AthAlgTool, IL1TriggerByteStreamT
         constexpr static unsigned int mapIndex(unsigned int jfex, unsigned int fpga, unsigned int channel, unsigned int tower);
         std::unordered_map<unsigned int, std::array<float,6> > m_Firm2Tower_map; /// {map index, {IDsimulation,eta,phi,source,iEta,iPhi}}
         
-        
-        
 };
 
 #endif // JFEXINPUTBYTESTREAMTOOL_H