As much as I try to make the node hierarchy as flat as possible there's simply no practical way to prevent running into these assertions without circumventing separation of concerns:

"Can't start a transition when one of the supernodes is performing one."

"Can't start a transition when one of the subnodes is performing one."

Related issues:

https://github.com/facebook/AsyncDisplayKit/issues/1400

https://github.com/facebook/AsyncDisplayKit/issues/2407

One reason to allow this behavior is if you have a somewhat deeper node hierarchy and animating a subnode effects the position of a node higher up in the tree, ideally everything would shift in an animated fashion.

In the example hierarchy (image attached), if we remove node D with an animated transition, node B.1 will shrink in size and node B.2 will shift up without animation. Ideally if the removal of D effects the positions or sizes of any nodes higher in the tree they should be able to animate also.