diff --git a/cognee/infrastructure/databases/graph/memgraph/memgraph_adapter.py b/cognee/infrastructure/databases/graph/memgraph/memgraph_adapter.py index 050e3a3c8..3612e3277 100644 --- a/cognee/infrastructure/databases/graph/memgraph/memgraph_adapter.py +++ b/cognee/infrastructure/databases/graph/memgraph/memgraph_adapter.py @@ -381,12 +381,19 @@ class MemgraphAdapter(GraphDBInterface): The result of the edge addition operation, including relationship details. """ + + exists = await asyncio.gather(self.has_node(str(from_node)), self.has_node(str(to_node))) + + if not all(exists): + return None + serialized_properties = self.serialize_properties(edge_properties or {}) query = dedent( f"""\ MATCH (from_node {{id: $from_node}}), (to_node {{id: $to_node}}) + WHERE from_node IS NOT NULL AND to_node IS NOT NULL MERGE (from_node)-[r:{relationship_name}]->(to_node) ON CREATE SET r += $properties, r.updated_at = timestamp() ON MATCH SET r += $properties, r.updated_at = timestamp()