diff --git a/source/RobotAPI/components/units/HapticObserver.cpp b/source/RobotAPI/components/units/HapticObserver.cpp
index ed10cc0355424c71e974b67d624b754d92991d7d..2ad4e48737c6b673804c79d5b6e90b0fd8e02d8b 100644
--- a/source/RobotAPI/components/units/HapticObserver.cpp
+++ b/source/RobotAPI/components/units/HapticObserver.cpp
@@ -39,7 +39,6 @@ void HapticObserver::onInitObserver()
     offerConditionCheck("larger", new ConditionCheckLarger());
     offerConditionCheck("equals", new ConditionCheckEquals());
     offerConditionCheck("smaller", new ConditionCheckSmaller());
-
 }
 
 void HapticObserver::onConnectObserver()
@@ -55,7 +54,14 @@ void HapticObserver::onExitObserver()
 void HapticObserver::reportSensorValues(const std::string& device, const std::string& name, const armarx::MatrixFloatBasePtr& values, const armarx::TimestampBasePtr& timestamp, const Ice::Current&)
 {
     ScopedLock lock(dataMutex);
+
     MatrixFloatPtr matrix = MatrixFloatPtr::dynamicCast(values);
+    if (matrix->cols == 0)
+    {
+        // Empty matrix received, silently ignore
+        return;
+    }
+
     TimestampVariantPtr timestampPtr = TimestampVariantPtr::dynamicCast(timestamp);
     Eigen::MatrixXf eigenMatrix = matrix->toEigen();
     float max = eigenMatrix.maxCoeff();