I after completing Upchain Academy and reading through the relevant documentation, I spent almost 3 hours troubleshooting CR workflows. By the end of that time, I had learned 3 new things that were not clarified in the documentation which, if they had, would have saved me those 3 hours of work plus a few more in building those workflows: 1) The rejection criteria in primitives checks not just the parent item, but the child items as well. There is not a direct way to check only parent items (although this would be a nice addition). 2) Although released child items in a CR do not have a lock icon next to them, they are still scanned by primitives with rejection criteria. If you want to ignore these, you need to additionally filter by status in the criteria. 3) If a rejection criteria for a given condition or attribute specifies "does not contain" or "does not equal" a certain value, then the item being checked has to have a value (i.e., not be null or empty) in order to meet this criteria. An additional criteria must be made to consider the case in which the value may be null or empty.