diff --git a/source/RobotAPI/libraries/armem_objects/SceneSnapshot.cpp b/source/RobotAPI/libraries/armem_objects/SceneSnapshot.cpp
index c410c7e358ed86cbab32543340ffea67e013def7..d8ae0a10b97825f924d7e1605dc4687dcce9bfee 100644
--- a/source/RobotAPI/libraries/armem_objects/SceneSnapshot.cpp
+++ b/source/RobotAPI/libraries/armem_objects/SceneSnapshot.cpp
@@ -2,18 +2,26 @@
 
 #include <SimoxUtility/json.h>
 
+#include <RobotAPI/libraries/ArmarXObjects/ObjectID.h>
+
 // #include <RobotAPI/libraries/armem/core/json_conversions.h>
 
 
 namespace armarx::armem::obj
 {
+
+    ObjectID SceneSnapshot::Object::getClassID() const
+    {
+        return ObjectID(className);
+    }
+
 }
 
 
 void armarx::armem::obj::to_json(nlohmann::json& j, const SceneSnapshot::Object& rhs)
 {
     //     j["instanceID"] = rhs.instanceID;
-    j["class"] = rhs.classID.str();
+    j["class"] = rhs.className;
     j["collection"] = rhs.collection;
     j["position"] = rhs.position;
     j["orientation"] = rhs.orientation;
@@ -23,7 +31,7 @@ void armarx::armem::obj::to_json(nlohmann::json& j, const SceneSnapshot::Object&
 void armarx::armem::obj::from_json(const nlohmann::json& j, SceneSnapshot::Object& rhs)
 {
     //     j.at("instanceID").get_to(rhs.instanceID);
-    rhs.classID = ObjectID(j.at("class").get<std::string>());
+    j.at("class").get_to(rhs.className);
     j.at("collection").get_to(rhs.collection);
     j.at("position").get_to(rhs.position);
     j.at("orientation").get_to(rhs.orientation);
@@ -41,3 +49,5 @@ void armarx::armem::obj::from_json(const nlohmann::json& j, SceneSnapshot& rhs)
 {
     j.at("objects").get_to(rhs.objects);
 }
+
+
diff --git a/source/RobotAPI/libraries/armem_objects/SceneSnapshot.h b/source/RobotAPI/libraries/armem_objects/SceneSnapshot.h
index b7c9ed5d80a28a66f573c077f7aa2a92c4b5c327..2baa2cd3c323794aa4112bbc5df8c3353073dc61 100644
--- a/source/RobotAPI/libraries/armem_objects/SceneSnapshot.h
+++ b/source/RobotAPI/libraries/armem_objects/SceneSnapshot.h
@@ -25,10 +25,11 @@
 
 #include <Eigen/Geometry>
 
-#include <RobotAPI/libraries/ArmarXObjects/ObjectID.h>
-// #include <RobotAPI/libraries/armem/core/MemoryID.h>
-
 
+namespace armarx
+{
+    class ObjectID;
+}
 namespace armarx::armem::obj
 {
 
@@ -36,13 +37,13 @@ namespace armarx::armem::obj
     {
         struct Object
         {
-            // MemoryID instanceID;
-
-            ObjectID classID;
+            std::string className;
             std::string collection;
 
             Eigen::Vector3f position = Eigen::Vector3f::Zero();
             Eigen::Quaternionf orientation = Eigen::Quaternionf::Identity();
+
+            ObjectID getClassID() const;
         };
         std::vector<Object> objects;
     };
diff --git a/source/RobotAPI/libraries/armem_objects/server/instance/Segment.cpp b/source/RobotAPI/libraries/armem_objects/server/instance/Segment.cpp
index 06dd140ed2152258f8aeccd7e1e984a4f6dd10e2..eb81a73dc3fa4b949dbdf880a9023b51d02d7320 100644
--- a/source/RobotAPI/libraries/armem_objects/server/instance/Segment.cpp
+++ b/source/RobotAPI/libraries/armem_objects/server/instance/Segment.cpp
@@ -49,6 +49,7 @@ namespace armarx::armem::server::obj::instance
             {
                 try
                 {
+                    objectInfo->setLogError(false);  // Don't log missing files
                     return objectInfo->loadOOBB();
                 }
                 catch (const std::ios_base::failure& e)
@@ -217,6 +218,10 @@ namespace armarx::armem::server::obj::instance
             {
                 toAron(dto.classID, instance->id());
             }
+            else
+            {
+                toAron(dto.classID, MemoryID());
+            }
             toAron(dto.sourceID, MemoryID());
             update.instancesData.push_back(dto.toAron());
         }
@@ -811,7 +816,7 @@ namespace armarx::armem::server::obj::instance
                 {
                     armem::obj::SceneSnapshot::Object& object = scene.objects.emplace_back();
                     // object.instanceID = entityInstance.id();
-                    object.classID = objectInstance->classID.entityName;
+                    object.className = ObjectID(objectInstance->classID.entityName).getClassID().str();
                     object.collection = "";
                     object.position = simox::math::position(objectInstance->pose.objectPoseGlobal);
                     object.orientation = simox::math::orientation(objectInstance->pose.objectPoseGlobal);
@@ -838,11 +843,13 @@ namespace armarx::armem::server::obj::instance
 
         for (const auto& object : scene.objects)
         {
+            const ObjectID classID = object.getClassID();
+
             objpose::ObjectPose& pose = objectPoses.emplace_back();
 
             pose.providerName = sceneName;
             pose.objectType = objpose::ObjectTypeEnum::KnownObject;
-            pose.objectID = object.classID.withInstanceName(std::to_string(idCounters[object.classID]++));
+            pose.objectID = classID.withInstanceName(std::to_string(idCounters[classID]++));
 
             pose.objectPoseGlobal = simox::math::pose(object.position, object.orientation);
             pose.objectPoseRobot = pose.objectPoseGlobal;
@@ -853,7 +860,7 @@ namespace armarx::armem::server::obj::instance
             pose.robotPose = Eigen::Matrix4f::Identity();
 
             pose.confidence = 1.0;
-            pose.localOOBB = getObjectOOBB(object.classID);
+            pose.localOOBB = getObjectOOBB(classID);
             pose.timestamp = now;
         }