This sounds like your constructor ran before another which your method depends on. CreateDefaultSubobject always felt a bit hacky to me because you can’t assume that during your class its constructor another class constructor already ran. I do use the UDeveloperSettings class all the time to set default classes in using TSoftClassPtr / TSoftObjectPtr, which I then retrieve in my constructors without errors.