conditions for cast failing

Aside from casting failing when an instance of casted to blueprint doesn’t exist - is the only other condition for failing a cast dependant on if the two interacting blueprints do not share the same parent?

I can’t find the list of conditions or properties required to make a cast succeed for blueprint scripting, any help would be appreciated, thanks!

I think(or say guess, Epic guys will have more proper answer) there are some sort of IDs in a Blueprints, so you can cast to all the parent classes, but not sibling classes.
So only path for cast is up the class tree.

Thanks - thus can a parent cast to a child?

Yes, if you cast to the parent you can get the child. For instance, I Cast to Tile_Parent because I can’t predict which Child tile I will hit on my Line Trace. If I cast to a Child, then I would miss the other 5 Children that I could possibly hit.