Blueprint cannot be loaded because it derived from an invalid class

Why is this happening?

I started a new learning project. I created some C++ classes for things like the player character, game mode, controller, etc. I right clicked them, and created blueprints derived from them.

Initially they were working fine. Then I saved, closed my project after being done for the day. Now today when I open the exact same project up, I get this message when trying to open the blueprint files:

The game mode blueprint still works fine, but the character and controller blueprint are broken. I’ve tried compiling but it’s still broken. Why does this happen?

Run your project from your coding IDE. The missing classes should show up.
Once it loads check if the parent is present. If it’s still messed up because of the previous missing class try re-parenting it to the c++ that should now be present.

Alright thanks!