diff --git a/src/graph/GraphView.cpp b/src/graph/GraphView.cpp
index d231376551126a835159844268dc47bb3e9e72bf..5a3eb695d7288c6414c01a82b36638f8b93d6b5f 100644
--- a/src/graph/GraphView.cpp
+++ b/src/graph/GraphView.cpp
@@ -650,9 +650,12 @@ void Aidge::GraphView::add(std::shared_ptr<Node> node, bool includeLearnablePara
 
 std::pair<std::vector<Aidge::NodePtr>, size_t> Aidge::GraphView::getRankedNodes() const {
   std::set<NodePtr> nodesToRank(mNodes);
-  nodesToRank.erase(mRootNode);
   std::vector<NodePtr> rankedNodes;
-  rankedNodes.push_back(mRootNode);
+
+  if (mRootNode) {
+    nodesToRank.erase(mRootNode);
+    rankedNodes.push_back(mRootNode);
+  }
 
   for (size_t curNodeIdx = 0; curNodeIdx < rankedNodes.size(); ++curNodeIdx) {
     NodePtr curNode = rankedNodes[curNodeIdx];