diff --git a/src/operator/FCImpl.cpp b/src/operator/FCImpl.cpp
index eecff38afd4d4487d51a070d6c0f4c2507a2b478..d9edf3a9959c1c80dbe85c93f7a1499260452c4c 100644
--- a/src/operator/FCImpl.cpp
+++ b/src/operator/FCImpl.cpp
@@ -72,7 +72,10 @@ void Aidge::FCImpl_cpu::backward()
 {
     const FC_Op& op_ = dynamic_cast<const FC_Op&>(mOp);
     const auto& fc_grad = op_.getOutput(0)->grad();
-    assert(fc_grad && "missing ouput #0 gradient");
+    AIDGE_ASSERT(fc_grad, "missing ouput #0 gradient");
+    AIDGE_ASSERT(op_.getInput(0)->grad(), "missing input #0 gradient");
+    AIDGE_ASSERT(op_.getInput(1)->grad(), "missing input #1 gradient");
+    AIDGE_ASSERT(op_.getInput(2)->grad(), "missing input #2 gradient");
 
     // Find the correct kernel type
     const Registrar<FCImplBackward_cpu>::registrar_key registrarKey = {