diff --git a/source/RobotAPI/libraries/armem/core/diskmemory/EntityInstance.cpp b/source/RobotAPI/libraries/armem/core/diskmemory/EntityInstance.cpp
index 49bfe419d8a8cf1052fad7e47a0ecba9e355c529..9b6d3f8a1126b667dbc233f1f079052d02e4df5c 100644
--- a/source/RobotAPI/libraries/armem/core/diskmemory/EntityInstance.cpp
+++ b/source/RobotAPI/libraries/armem/core/diskmemory/EntityInstance.cpp
@@ -4,6 +4,7 @@
 #include <fstream>
 
 #include "../../core/error.h"
+#include "ArmarXCore/core/exceptions/LocalException.h"
 
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
 #include <RobotAPI/libraries/aron/core/io/dataIO/converter/Converter.h>
@@ -103,7 +104,16 @@ namespace armarx::armem::d_ltm
     void EntityInstance::setTo(const wm::EntityInstance& m)
     {
         std::filesystem::path p = _fullPath();
-        std::filesystem::create_directories(p);
+
+        try
+        {
+            std::filesystem::create_directories(p);
+        }
+        catch (...)
+        {
+            ARMARX_WARNING << GetHandledExceptionString();
+            return;
+        }
 
         std::filesystem::path d = p / (std::string(DATA_FILENAME) + ".json");
 
diff --git a/source/RobotAPI/libraries/armem/core/diskmemory/EntitySnapshot.cpp b/source/RobotAPI/libraries/armem/core/diskmemory/EntitySnapshot.cpp
index 199e4f2c9b9eed9d9b099e773d96ba0a03fd7d16..cc1124ab2335d1acf69550350a0bc980c0af7b7f 100644
--- a/source/RobotAPI/libraries/armem/core/diskmemory/EntitySnapshot.cpp
+++ b/source/RobotAPI/libraries/armem/core/diskmemory/EntitySnapshot.cpp
@@ -69,7 +69,15 @@ namespace armarx::armem::d_ltm
 
     void EntitySnapshot::setTo(const wm::EntitySnapshot& m)
     {
-        std::filesystem::create_directories(_fullPath());
+        try
+        {
+            std::filesystem::create_directories(_fullPath());
+        }
+        catch (...)
+        {
+            ARMARX_WARNING << GetHandledExceptionString();
+            return;
+        }
 
         // We remove the contente here and reset it with new values
         _container.clear();
@@ -77,7 +85,15 @@ namespace armarx::armem::d_ltm
         int i = 0;
         for (const auto& s : m.instances())
         {
-            std::filesystem::create_directory(_fullPath() / std::to_string(i));
+            try
+            {
+                std::filesystem::create_directory(_fullPath() / std::to_string(i));
+            }
+            catch (...)
+            {
+                ARMARX_WARNING << GetHandledExceptionString();
+                continue;;
+            }
 
             auto wms = _container.emplace_back(id().withInstanceIndex(i++));
             wms.path = path;
diff --git a/source/RobotAPI/libraries/armem/core/diskmemory/ProviderSegment.cpp b/source/RobotAPI/libraries/armem/core/diskmemory/ProviderSegment.cpp
index 2d5ed3d4a588827137b33e69ecaec3be1a4c31fc..77d38171c15a0c5b6022c28c8d7ad5ece1a5b62a 100644
--- a/source/RobotAPI/libraries/armem/core/diskmemory/ProviderSegment.cpp
+++ b/source/RobotAPI/libraries/armem/core/diskmemory/ProviderSegment.cpp
@@ -81,7 +81,18 @@ namespace armarx::armem::d_ltm
 
     void ProviderSegment::append(const wm::ProviderSegment& m)
     {
-        std::filesystem::create_directories(_fullPath());
+
+        try
+        {
+            std::filesystem::create_directories(_fullPath());
+
+        }
+        catch (...)
+        {
+            ARMARX_WARNING << GetHandledExceptionString();
+            return;
+        }
+
         TypeIO::writeAronType(_aronType, _fullPath());
 
         for (const auto& [k, s] : m.container())
@@ -92,7 +103,19 @@ namespace armarx::armem::d_ltm
             }
             else
             {
-                std::filesystem::create_directory(_fullPath() / k);
+
+                try
+                {
+                    std::filesystem::create_directory(_fullPath() / k);
+                    continue;
+
+                }
+                catch (...)
+                {
+                    ARMARX_WARNING << GetHandledExceptionString();
+                    return;
+                }
+
                 auto wms = _container.emplace(std::make_pair(k, id().withEntityName(k)));
                 wms.first->second.path = path;
                 wms.first->second.append(s);