diff --git a/ProcessLib/HeatTransportBHE/CreateHeatTransportBHEProcess.cpp b/ProcessLib/HeatTransportBHE/CreateHeatTransportBHEProcess.cpp
index 133c1c89b6b3bea4cdcc47f8c391f788ec74b271..6dcfe609e7307c2340d3e0b3c364dc2ef2776a8a 100644
--- a/ProcessLib/HeatTransportBHE/CreateHeatTransportBHEProcess.cpp
+++ b/ProcessLib/HeatTransportBHE/CreateHeatTransportBHEProcess.cpp
@@ -248,6 +248,17 @@ std::unique_ptr<Process> createHeatTransportBHEProcess(
         bhe_iterator++;
     }
 
+    if (static_cast<int>(bhes_map.size()) - 1 != bhes_map.rbegin()->first)
+    {
+        OGS_FATAL(
+            "The maximum given BHE id '{:d}' did not match the number of given "
+            "BHE definitions '{:d}'. The BHE ids needs to be defined starting "
+            "from 0, so the maximum BHE id needs to be number of BHE "
+            "definitions minus 1. After all definitions there are no gaps "
+            "allowed between the given ids.",
+            bhes_map.rbegin()->first, bhes_map.size());
+    }
+
     std::vector<BHE::BHETypes> bhes;
     bhes.reserve(bhes_map.size());
     std::ranges::copy(bhes_map | std::views::values, std::back_inserter(bhes));