Deriving from UBlueprint class

It seems like you blueprint asset don’t generate UClass, maybe specifically when you hit save with doing nothing, as this is validation condition for UBlueprint:

 EDataValidationResult UBlueprint::IsDataValid(TArray<FText>& ValidationErrors)
 {
     return GeneratedClass ? GeneratedClass->GetDefaultObject()->IsDataValid(ValidationErrors) : EDataValidationResult::Invalid;
 }

You could override this function in you asset class to make those messages dissaper, but the problem might be still there and can cause farther issues. If you make blueprint code that VM needs to generate the UClass to work properly on runtime, as actors and objects are spawned form UClass not UBlueprint, so make sure GeneratedClass work properly, matbe compile your blueprint before save.