diff --git a/source/RobotAPI/libraries/armem/core/base/CoreSegmentBase.h b/source/RobotAPI/libraries/armem/core/base/CoreSegmentBase.h
index 57b1816f5bbf32630b450b61780d7b3a33d9e39e..eefb1b5ce73fdc3f83b5f15101ad3e10e9f0f989 100644
--- a/source/RobotAPI/libraries/armem/core/base/CoreSegmentBase.h
+++ b/source/RobotAPI/libraries/armem/core/base/CoreSegmentBase.h
@@ -169,7 +169,7 @@ namespace armarx::armem::base
                 }
                 else
                 {
-                    throw armem::error::MissingEntry("provider segment", update.entityID.providerSegmentName, getLevelName(), this->getKeyString());
+                    throw error::MissingEntry::create<EntitySnapshotT>(update.entityID.providerSegmentName, *this);
                 }
             }
             else
diff --git a/source/RobotAPI/libraries/armem/core/base/EntityBase.h b/source/RobotAPI/libraries/armem/core/base/EntityBase.h
index 584ee9c877dd933d69061fd60006280ca235bb04..ab227c33ee321475f129d8f864b5cbf31e3f4845 100644
--- a/source/RobotAPI/libraries/armem/core/base/EntityBase.h
+++ b/source/RobotAPI/libraries/armem/core/base/EntityBase.h
@@ -234,7 +234,7 @@ namespace armarx::armem::base
                 {
                     return refIt->second;
                 }
-                throw error::MissingEntry("entity snapshot", toDateTimeMilliSeconds(time), getLevelName(), this->id().str());
+                throw error::MissingEntry::create<EntitySnapshotT>(toDateTimeMilliSeconds(time), *this);
             }
 
             // last element less than
@@ -246,7 +246,7 @@ namespace armarx::armem::base
                 return refItPrev->second;
             }
 
-            throw error::MissingEntry("entity snapshot", toDateTimeMilliSeconds(time), getLevelName(), this->id().str());
+            throw error::MissingEntry::create<EntitySnapshotT>(toDateTimeMilliSeconds(time), *this);
         }
 
         /**
@@ -263,7 +263,7 @@ namespace armarx::armem::base
 
             if (refIt == this->_container.begin())
             {
-                throw error::MissingEntry("entity snapshot", toDateTimeMilliSeconds(time), getLevelName(), this->id().str());
+                throw error::MissingEntry::create<EntitySnapshotT>(toDateTimeMilliSeconds(time), *this);
             }
 
             // last element less than
@@ -275,7 +275,7 @@ namespace armarx::armem::base
                 return refItPrev->second;
             }
 
-            throw error::MissingEntry("entity snapshot", toDateTimeMilliSeconds(time), getLevelName(), this->id().str());
+            throw error::MissingEntry::create<EntitySnapshotT>(toDateTimeMilliSeconds(time), *this);
         }
 
         /**
@@ -315,7 +315,7 @@ namespace armarx::armem::base
 
             if (refIt == this->_container.end())
             {
-                throw error::MissingEntry("entity snapshot", toDateTimeMilliSeconds(time), getLevelName(), this->id().str());
+                throw error::MissingEntry::create<EntitySnapshotT>(toDateTimeMilliSeconds(time), *this);
             }
             return refIt->second;
         }
@@ -334,7 +334,7 @@ namespace armarx::armem::base
 
             if (refIt == this->_container.end())
             {
-                throw error::MissingEntry("entity snapshot", toDateTimeMilliSeconds(time), getLevelName(), this->id().str());
+                throw error::MissingEntry::create<EntitySnapshotT>(toDateTimeMilliSeconds(time), *this);
             }
 
             if (refIt->first > time)
@@ -350,7 +350,7 @@ namespace armarx::armem::base
                 return refItNext->second;
             }
 
-            throw error::MissingEntry("entity snapshot", toDateTimeMilliSeconds(time), getLevelName(), this->id().str());
+            throw error::MissingEntry::create<EntitySnapshotT>(toDateTimeMilliSeconds(time), *this);
         }
 
 
diff --git a/source/RobotAPI/libraries/armem/core/longtermmemory/Entity.cpp b/source/RobotAPI/libraries/armem/core/longtermmemory/Entity.cpp
index a2e68a9e216355962d534ee9928d3547cc90774e..56a9e51423ec71cb7f214f7b90a9de58e30b3f0c 100644
--- a/source/RobotAPI/libraries/armem/core/longtermmemory/Entity.cpp
+++ b/source/RobotAPI/libraries/armem/core/longtermmemory/Entity.cpp
@@ -133,7 +133,7 @@ namespace armarx::armem::ltm
     {
         if (!hasSnapshot(time))
         {
-            throw error::MissingEntry("ltm entity snapshot", toDateTimeMilliSeconds(time), getLevelName(), this->id().str());
+            throw error::MissingEntry::create<EntitySnapshotT>(toDateTimeMilliSeconds(time), *this);
         }
 
         // the above command already puts the reference to the cache