Why shouldn’t you avoid casting? Simply do sth accordingly when the cast fails.
The only difference between blueprints and c++ in this regard is that BPs don’t crash your game.
Adding a simple PrinString node with log entries is often enough to remind you that there is something wrong.