diff --git a/src/caoscrawler/sync_graph.py b/src/caoscrawler/sync_graph.py
index 36ed36d7864059fc8f169000313186af9f1eb4b0..08b38be5ce4d4610b096f645f110d68c65c69479 100644
--- a/src/caoscrawler/sync_graph.py
+++ b/src/caoscrawler/sync_graph.py
@@ -301,9 +301,11 @@ class SyncGraph():
         equivalent_se = self.get_equivalent(node)
         if equivalent_se is not None and equivalent_se is not node:
             self._merge_into(node, equivalent_se)
-            assert equivalent_se.identifiable is not None
+            if equivalent_se.identifiable is None:
+                raise ValueError("Identifiable is missing")
         else:
-            assert node.identifiable.get_representation() not in self._identifiable_look_up
+            if node.identifiable.get_representation() in self._identifiable_look_up:
+                raise RuntimeError("Identifiable is already in the look up")
             self._identifiable_look_up[node.identifiable.get_representation()] = node
 
     @staticmethod
diff --git a/src/caoscrawler/sync_node.py b/src/caoscrawler/sync_node.py
index 5dd8baf75115116b506b5cf5694c2c0f4cecb77f..1d07351b50ded024ae67e4dcae1e424d561db067 100644
--- a/src/caoscrawler/sync_node.py
+++ b/src/caoscrawler/sync_node.py
@@ -108,7 +108,10 @@ class SyncNode:
                 if self.__getattribute__(attr) is None:
                     self.__setattr__(attr, other.__getattribute__(attr))
                 else:
-                    assert self.__getattribute__(attr) == other.__getattribute__(attr)
+                    if self.__getattribute__(attr) != other.__getattribute__(attr):
+                        raise ValueError(f"Trying to update {attr} but this would lead to an "
+                                         f"override of the value '{self.__getattribute__(attr)}' "
+                                         f"by the value '{other.__getattribute__(attr)}'")
         for p in other.parents:
             if not parent_in_list(p, self.parents):
                 self.parents.append(p)