"Unexpectedly encountered placeholder class while serializing a component" when migrating from 4.27 to 5.0

A bit confused by this error… I’m migrating a project from 4.27 to 5.0 and it crashes at 93%. The crash log shows this as the last error. Does this mean somewhere in my project, there’s a child actor without a class set and that’s why it can’t migrate?

Crash log:

Script Stack (0 frames):

[2022.11.04-20.58.10:830][ 0]LogStats: FPlatformStackWalk::StackWalkAndDump - 2.631 s
[2022.11.04-20.58.10:830][ 0]LogOutputDevice: Error: === Handled ensure: ===
[2022.11.04-20.58.10:830][ 0]LogOutputDevice: Error:
[2022.11.04-20.58.10:830][ 0]LogOutputDevice: Error: Ensure condition failed: false [File:D:\build++UE5\Sync\Engine\Source\Runtime\Engine\Private\Components\ChildActorComponent.cpp] [Line: 122]
[2022.11.04-20.58.10:830][ 0]LogOutputDevice: Error: Unexpectedly encountered placeholder class while serializing a component
[2022.11.04-20.58.10:830][ 0]LogOutputDevice: Error: Stack:
[2022.11.04-20.58.10:830][ 0]LogOutputDevice: Error: [Callstack] 0x00007ff98abb5a25 UnrealEditor-Engine.dll!UChildActorComponent::Serialize() [D:\build++UE5\Sync\Engine\Source\Runtime\Engine\Private\Components\ChildActorComponent.cpp:122]

Hey @SVR33!

Somewhere in your project is a ChildActorComponent living purely as a reference. This will need to be deleted in order for your project to move over smoothly. At least, that’s what I gathered from this post>>

1 Like

Thanks @Mind-Brain, that’s what I was afraid of.

I guess a better question to ask would have been ‘Is there a way to locate the offending Child Actor Component(s)?’

I have 2500+ blueprints in my project… I’ve run warning checks, ‘recompiled all’ and manually checked all the BP’s I can think of that might have a child actor but I’m still having the same trouble.

Hmm. That’s a big project! As far as I know, there wouldn’t be a way, but there are those more skilled with the build process. Try making a post asking that specific question. Maybe you’ll have better luck getting attention with that as the headline!

1 Like

Hello,
Have you found the solution?

Yeah, it means there’s a Child Actor Component somewhere in your project that doesn’t have a valid class assigned to it. Most likely it’s set to “None”. UNFORTUNATELY, there’s no way (that I could find) to locate the specific BP with the problem, so I spent days going through every. single. blueprint. in my project and trying to eliminate child actors, whenever possible. They aren’t really good practice, for a number of reasons - this being one of them.