diff --git a/include/aidge/operator/MetaOperator.hpp b/include/aidge/operator/MetaOperator.hpp
index a411101618a5f4acaf070516d67691a6b55e3ff5..75c4d886ff761b93dc7b58b98a6ab72453ed804b 100644
--- a/include/aidge/operator/MetaOperator.hpp
+++ b/include/aidge/operator/MetaOperator.hpp
@@ -118,7 +118,7 @@ public:
     void updateConsummerProducer() override;
     void forward() override;
     void backward() override {
-        assert(false && "not implemented");
+        AIDGE_THROW_OR_ABORT(std::runtime_error, "backward() not implemented yet for a MetaOperator");
     }
 
     inline bool isAtomic() const noexcept override final { return false; }
diff --git a/src/backend/OperatorImpl.cpp b/src/backend/OperatorImpl.cpp
index 2277db2421c36704270b81bdb6c45f19aaa891e4..8a5b40e44308111c5778c5260155b644234103c8 100644
--- a/src/backend/OperatorImpl.cpp
+++ b/src/backend/OperatorImpl.cpp
@@ -129,9 +129,9 @@ void Aidge::OperatorImpl::resetConsummerProducer(){
 }
 
 void Aidge::OperatorImpl::forward() {
-    AIDGE_THROW_OR_ABORT(std::runtime_error, "forward() not implemented");
+    AIDGE_THROW_OR_ABORT(std::runtime_error, "forward() not implemented yet for operator of type {}", mOp.type());
 }
 
 void Aidge::OperatorImpl::backward() {
-    AIDGE_THROW_OR_ABORT(std::runtime_error, "backward() not implemented");
+    AIDGE_THROW_OR_ABORT(std::runtime_error, "backward() not implemented yet for operator of type {}", mOp.type());
 }