diff --git a/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.cpp b/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.cpp
index 2a3d01143be737e9afb7ce5c27253e2cb6d4891e..da477a238532c316ed729e833ebcc0a07f86cc2e 100644
--- a/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.cpp
+++ b/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.cpp
@@ -130,6 +130,10 @@ namespace armarx::armem::server::robot_state
 
     void RobotStateMemory::onConnectComponent()
     {
+        waitUntilRobotUnitIsRunning();
+
+        ARMARX_CHECK_NOT_NULL(getRobotUnit()->getKinematicUnit());
+
         descriptionSegment.connect(getArvizClient(), getRobotUnit());
 
         proprioceptionSegment.connect(getArvizClient(), getRobotUnit());