Blueprint CDO contains removed component from parent class

We have a bunch of blueprint classes derived from a single C++ class. We also have some code that inspects CDOs in editor in order to check what components a given class uses.

It appears that if a component is removed from C++ class, CDOs for all of blueprints remain unchanged and still contain component that was removed even though instances of blueprint do not. If I manually recompile and save each of these blueprints, CDO is successfully updated.

How can I fix this? Can I at least force these blueprints to regenerate their CDO from code? How is this best accomplished?

I’ve worked around this by doing a FKismetEditorUtilities::CompileBlueprint( blueprint ); before I inspect particular blueprint’s CDO, but this should really be invalidated in first place by code change to parent class. It’s not greatest from a performance point of view to have to recompile blueprint so frequently just because I can’t trust that it’s CDO is up to date.

Hi BrainDx,

Thanks for your report! We’ve brought this to attention of developers who are investigating possible causes (UE-14592). I’ll let you know as soon as I see an update on issue.

Hi BrainDx,

Can you give this a try in 4.8 Preview 2? This should be fixed internally, and I believe fix made it into Preview build. Let me know if you still experience this issue. Thanks!

Just tried this in 4.8.0. Appears to have been fixed.

As mentioned in this post, I believe we are experiencing this issue here. We are on 4.8, and upgrading to a newer version of unreal isnt possible at this time.

Is there any work around, or a specific CL I could pull to get this fix?

Hi phantasie17,

I think your issue may actually be a little bit different from issue described here. I moved your post into Bug Reports section, and we will have someone take a look at what is going on.