This is an issue of the soft pointer API being a bit confusing. IsValid() checks whether the asset referenced by the soft pointer is loaded but for some reason Epic named it this way instead of something like IsLoaded(). If you want to check whether the soft pointer correctly references an asset, use IsNull().
1 Like