diff --git a/source/armarx/navigation/client/services/MemorySubscriber.cpp b/source/armarx/navigation/client/services/MemorySubscriber.cpp
index efb052ee4f9a01f8fce403b41ad019d13fa7cb84..89769e9f6887fb4177c5922fb9f8185fef4479bd 100644
--- a/source/armarx/navigation/client/services/MemorySubscriber.cpp
+++ b/source/armarx/navigation/client/services/MemorySubscriber.cpp
@@ -2,6 +2,7 @@
 #include <mutex>
 #include <type_traits>
 
+#include "ArmarXCore/core/exceptions/local/ExpressionException.h"
 #include <ArmarXCore/core/logging/Logging.h>
 #include <ArmarXCore/core/services/tasks/PeriodicTask.h>
 
@@ -54,6 +55,7 @@ namespace armarx::navigation::client
             return;
         }
 
+        ARMARX_TRACE;
         handleEvents(qResult.memory);
     }
 
@@ -64,7 +66,11 @@ namespace armarx::navigation::client
         static_assert(std::is_base_of<armarx::aron::codegenerator::cpp::AronGeneratedClass,
                                       AronEventT>::value);
 
-        const auto dto = AronEventT::FromAron(entity.data());
+        // see events::Writer::storeImpl
+        const auto dataDict = aron::data::Dict::DynamicCastAndCheck(entity.data()->getElement("data"));
+        ARMARX_CHECK_NOT_NULL(dataDict);
+        const auto dto = AronEventT::FromAron(dataDict);
+
         core::fromAron(dto, bo);
         return bo;
     }