Index: flexoentity/domain_manager.py
===================================================================
--- flexoentity/domain_manager.py	(revision d0a379f5d8679b5644bc737c688b7001f9f93a79)
+++ flexoentity/domain_manager.py	(revision 32fdc4af3ba5672c284c92bb57685eababa3d235)
@@ -76,11 +76,4 @@
         return cls.register(domain)
 
-    @classmethod
-    def get_or_create(cls, code: str, **kwargs) -> Domain:
-        """Return existing domain or create+register new one."""
-        if code in cls._by_code:
-            return cls._by_code[code]
-        return cls.create(code, **kwargs)
-
     # ---------------------------------------------------------------
     # Utility
Index: flexoentity/flexo_entity.py
===================================================================
--- flexoentity/flexo_entity.py	(revision d0a379f5d8679b5644bc737c688b7001f9f93a79)
+++ flexoentity/flexo_entity.py	(revision 32fdc4af3ba5672c284c92bb57685eababa3d235)
@@ -214,5 +214,10 @@
                                  description=kwargs.get("description", ""))
         else:
-            DomainManager.get_or_create(domain_id=domain_id, **kwargs)
+            # require that this domain already exists
+            if domain_id not in DomainManager.all_domain_ids():
+                raise ValueError(
+                    f"Domain '{domain_id}' does not exist. "
+                    f"Create it first via Domain.with_domain_id(...)."
+                )
 
         flexo_id = FlexOID.safe_generate(
