diff --git a/src/operator/GlobalAveragePooling.cpp b/src/operator/GlobalAveragePooling.cpp
index f2cfdc8bdd335dd24bba4fffdef192fc3f8cb591..114c0d5f52f00124d6ce10cdb3ea54c28e665b3e 100644
--- a/src/operator/GlobalAveragePooling.cpp
+++ b/src/operator/GlobalAveragePooling.cpp
@@ -22,11 +22,11 @@ void Aidge::GlobalAveragePooling_Op::computeOutputDims() {
     AIDGE_THROW_OR_ABORT(std::runtime_error,
                          "GlobalAveragePooling : The input was not connected");
   } else if (getInput(0)->dims().size() < 3) {
-    AIDGE_THROW_OR_ABORT(
-        std::runtime_error,
+    printf(
         "GlobalAveragePooling :  needs at least 3 dimensions input, "
-        "number of input dim : %lu",
+        "number of input dim : %lu\n",
         getInput(0)->dims().size());
+        throw std::runtime_error("Global Average Pooling: Invalid input dim nb.");
   } else {
     // Global average pooling takes each filter, averages its values and uses it
     // as an output(Much like a fancier flatten).