diff --git a/source/RobotAPI/libraries/armem_robot_state/server/description/Segment.cpp b/source/RobotAPI/libraries/armem_robot_state/server/description/Segment.cpp
index 0996242a4b38a6473734bc493ea164a706765d83..af2381c78d334e62ea39eb22978492ad66a32f1a 100644
--- a/source/RobotAPI/libraries/armem_robot_state/server/description/Segment.cpp
+++ b/source/RobotAPI/libraries/armem_robot_state/server/description/Segment.cpp
@@ -1,4 +1,5 @@
 #include "Segment.h"
+#include <filesystem>
 #include <SimoxUtility/algorithm/string/string_tools.h>
 
 #include <ArmarXCore/core/application/properties/PluginAll.h>
@@ -105,6 +106,9 @@ namespace armarx::armem::server::robot_state::description
                 .xml  = {package, robotFileRelPath}
             };
 
+            // make sure that the package path is valid
+            ARMARX_CHECK(std::filesystem::exists(robotDescription.xml.toSystemPath()));
+
             commitRobotDescription(robotDescription);
         }
         else