From d89954bb14d716510839da2c4ed7e3a63a7a3b96 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20tom=20W=C3=B6rden?= <h.tomwoerden@indiscale.com>
Date: Wed, 19 Mar 2025 16:02:15 +0100
Subject: [PATCH] FIX: Multiple registered identifiables error when multiple
 parents exist

---
 src/caoscrawler/identifiable_adapters.py | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/caoscrawler/identifiable_adapters.py b/src/caoscrawler/identifiable_adapters.py
index 6169a99..444b73f 100644
--- a/src/caoscrawler/identifiable_adapters.py
+++ b/src/caoscrawler/identifiable_adapters.py
@@ -672,11 +672,15 @@ class CaosDBIdentifiableAdapter(IdentifiableAdapter):
         registered = []
         for parent in rt.parents:
             prt = _retrieve_RecordType(id=parent.id, name=parent.name)
-            registered.append(self._get_registered_for_rt(prt))
+            reg = self._get_registered_for_rt(prt)
+            if reg is not None:
+                registered.append(reg)
         # TODO we might in future want to check whether the registered identifiables are the same
         if len(registered) > 1:
-            raise RuntimeError("Multiple registered identifiables found for the RecordType "
-                               f" {rt.name} with the following parents: {rt.parents}")
+            ri_names = [i.name for i in registered]
+            raise RuntimeError(f"Multiple registered identifiables found for the RecordType "
+                               f" {rt.name} with the following parents: {rt.parents}\n"
+                               f"Registered identifiables: {', '.join(ri_names)}")
         elif len(registered) == 1:
             return registered[0]
         else:
-- 
GitLab