Child Actor Component's Class clears on editor restart

This bug appeared after updating to 4.7 version. We have 2 child actor components attached to a blueprint. For some reason, every time I restart editor, it sets both of child actor components class to “None” or to “Placeholder-(something)” and I have to select class again in blueprint. Saving all files doesn’t help.

Hi Huikopala,

I attempted to reproduce this in 4.7 without success. To test, I created a 4.6.1 project with a new Actor Blueprint, which I placed in level. On Begin Play, I used Add Child Actor Component. I set Actor Class for node to Blueprint_Effect_Fire, a Blueprint included with Starter Content. I used Get Display Name off Return Value, and Print String off that. When I PIE, it displays name of class added as a Child Component.

If you have more specific steps you take that can show me how this isn’t working for you, I’d be happy to test that. If you would like to set up a small test project and upload that somewhere, I can take a look at that as well. Thanks!

Thank you for quick answer. I sent you test project and explained more in private message.

I Have come across this same issue upon upgrading to 4.7.

My characterBlueprint has a skeletal mesh with a ChildActor Attached in component hierarchy.

31470-assetcomponentlist.jpg

BombCarryChild has Child Actor Component set to custom a Blueprint actor: Carry_Bomb_001
After saving and restarting editor, upon opening userCharacter object BombCarryChild has Child Actor Component set to following: PLACEHOLDER-CLASS_Carry_Bomb_001_C_50

project, as well as both userCharacter & Carry_Bomb_001 actor were created in a 4.6 version of engine.
Both userCharacter & Carry_Bomb_001 derive from Actor.h

Thanks for test project! Which Blueprints should I be looking at to spot bug?

I am getting this issue as well, I’m not using Add Child Actor Component node in blueprint, but manually adding Child Actor Component by dragging and dropping an existing blueprint into components window. Everything works fine, but when I close and restart editor I Have a PLACEHOLDER-CLASS or just None.

i have same issue with child component it always clean!!!, in 4.6 all work fine!!!

Ps also when i build game my character child component(in my case that is weapons) don’t showing

I also have this exact same problem.

I have a custom player controller (subclass of PlayerController) with 8 child actor components. Each child actor component just references another blueprint that deals with player logic such as inventory management, camera management, checkpoint interactions, saving loading, etc…

3 of 8 child actor components change to PLACEHOLDER-CLASS_… or None

strange thing is that 3 blueprints that are switched to None are also being used (and not being switched to None) in another child actor component on another player controller on another level of project. Suggesting that those blueprints are not problem.

However even stranger is that I re-created my player controller ( one with 8 child actor components) from scratch, step by step function by function, variable by variable, node by node. But once I was finished re-creating it (without copying anything) I saw exact same behavior of 3 same child actor components defaulting to “PLACEHOLDER-CLASS_…” or “None”. Suggesting that custom player controller blueprint is not problem and that conversion from 4.6 to 4.7 was not what caused problem.

Another person with same issue reporting in.

I suspect use of macro blueprints in my child actor class is causing issue as usual; macro blueprints often seem to cause some corruption or circular weirdness from what I’ve seen. Hopefully project with repro that OP submitted helps devs reproduce issue.

Hey everyone I found a way to reproduce this bug on 4.7 from a clean project and made a separate question for it (Because it’s not an answer to this question and it’s too much to put in a comment). Here’s link:

Hi all,

Please check post Mastodon linked to ( [Bug Report][Reproducible] Child Actor Component's Class clears on editor restart - C++ - Epic Developer Community Forums ). I believe this issue has already been fixed internally, but if you compare your issue to answer to that post and find it doesn’t explain your situation, please post back here and we’ll look at other causes. Thanks!

4.7.3 have this issue, when we see a fix?

Hi ,

From post I linked to:

We’ve seen a few varying cases with
which this happens and we believe it’s
been fixed, but we weren’t able to get
it into 4.7 because it is an API
breaking change. It’s possible that
simply using GitHub commit won’t
fix this for everyone. best way to
test this right now would be to get
Master branch and open a copy of
project there.

To work around it for now, as long as
you don’t have bad cyclic
dependencies, you can try disabling
deferred dependency loading
(bDeferDependencyLoads=false) in
BaseEngine.ini.

We’re trying to get something for 4.7.4, but we’re not certain if it’s possible. If not, it will be available in 4.8. You can test a copy of your project in Promoted branch from GitHub to see if it still happens there, and let us know if it does. Thanks!

thx for reply, if epic fix it in 4.8 i better wait, thx

Problem persisting in UE 4.12

I have a widget component attached to a Pawn Root and Widget Class always set to PLACEHOLDER-CLASS_XXX (where XXX is widget class name) after restarting editor. Saving / changing widget class in user interface panel does not solve problem, nor fixing up redirections.

There are several related posts on this problem, with different Bug IDs:

And a few others. matter is not resolved but Epic Team seems to be waiting for a simple reproducible case, however I have experienced it 3 times, each time after a crash during compile where I believe some file dependencies in their virtual graph file system have been corrupted. Renaming/Moving files does not help and seems to increase probability of having this problem. Epic Team has also pointed out to try and avoid circular dependencies but I believe problem is more in their virtual file dependencies that can be corrupted upon crash.

While waiting for more appropriate solutions from Epic, three solutions:

  1. if you have problem (and chances are if you read this post), you may have to create an entirely new blueprint and recreate its nodes / behaviors from scratch. Avoid copy / paste since it may also copy wrong dependencies. In case where multiple BP are affected, it would be wise (although quite boring / not rewarding) to recreate whole project

  2. you could also try to remove Widget Component from components panel, create a Widget Component variable and assign proper parameters to this widget in construction script or event graph / begin play. I have not yet tested this approach, but I suspect it might work (EDIT: confirmed, it works; create a variable of your widget type, inside event graph / begin, use createwidget function to init your variable, then setwidget function of your widget component still in your components panel. It will set properly widget and override PLACEHOLDER problem).

  3. if you do not have problem yet (or if you have just spend a lot of time solving it/rewriting things), always use a versioning system such as subversion (Using SVN as Source Control for Unreal Engine | Unreal Engine 5.2 Documentation), then you’ll maintain different versions of your program, and in case of failure, revert back to revision which works

I also had this bug. I applied solution number two - blueprints deleted and recreated it again, bug was gone. Thank you!