Index: flexoentity/flexo_entity.py
===================================================================
--- flexoentity/flexo_entity.py	(revision 3cf10cb640ba51528620e4f93d2a95458a05d852)
+++ flexoentity/flexo_entity.py	(revision bd1554ac7ea40b76c87fcdddf1f00e6a35194848)
@@ -359,10 +359,8 @@
         """
 
-        allowed = self.allowed_transitions()
-
-        if target_state.name not in allowed:
+        if target_state not in self.allowed_transitions():
             raise ValueError(
                 f"Illegal state transition: {self.state.name} → {target_state.name}. "
-                f"Allowed: {', '.join(allowed) or 'none'}"
+                f"Allowed: {', '.join([each.name for each in self.allowed_transitions()]) or 'none'}"
             )
 
@@ -441,9 +439,8 @@
         then performs a version bump and lineage update.
         """
-        allowed = self.allowed_transitions()
-        if "PUBLISHED" not in allowed:
+        if EntityState.PUBLISHED not in self.allowed_transitions():
             raise ValueError(
                 f"Illegal state transition: {self.state.name} → PUBLISHED. "
-                f"Allowed: {', '.join(allowed) or 'none'}"
+                f"Allowed: {', '.join([each.name for each in self.allowed_transitions()]) or 'none'}"
             )
 
@@ -463,8 +460,8 @@
         """I mark myself as obsolete"""
         allowed = self.allowed_transitions()
-        if "OBSOLETE" not in allowed:
+        if EntityState.OBSOLETE not in self.allowed_transitions():
             raise ValueError(
                 f"Illegal state transition: {self.state.name} -> OBSOLETE. "
-                f"Allowed: {', '.join(allowed) or 'none'}"
+                f"Allowed: {', '.join([each.name for each in self.allowed_transitions()]) or 'none'}"
             )
         if self.state != EntityState.OBSOLETE:
