The assert that we're hitting is:
Cannot replace existing object of a different class. New Object: /Engine/Transient.REINST_BPC_NPC_VFX_C_230 /Game/Maps/[REDACTED]/Levels/[REDACTED]/LevelSequence/[REDACTED]. [REDACTED]:MovieScene_0.BP_EnemyCharacter_[REDACTED]_C_0.NPCVFXComponent Existing Object: /Game/Blueprints/Pawns/Components/BPC_NPC_VFX. BPC_NPC_VFX_C /Game/Maps/[REDACTED]/Levels/[REDACTED]/LevelSequence/[REDACTED]. [REDACTED]:MovieScene_0.BP_EnemyCharacter_[REDACTED]_C_0.NPCVFXComponent (0x00040008 0x00000001)
And I've confirmed in the debugger that the reason this doesn't work is because it's using the REINST_ class and not the original bp class (this is how it works when opening the BPC_NPC_VFX first and then opening the LevelSequence.
Steps to Reproduce
In our case, the repro is simple:
1. Open a LevelSequence that has spawnables and that was built in 5.4 in 5.5.
2. This causes a crash when using precompiled binaries (hitting an assert, shown below).
Notably, the same LevelSequence can be opened without a crash by first loading the object mentioned in the callstack field. So, this works:
1. Open the BPC_NPC_VFX blueprint.
2. Open the same LevelSequence from above that has spawnables and that was built in 5.4 in 5.5.
3. No crash.
I've tried resaving the BPC_NPC_VFX blueprint, closing down the editor and the trying to open the LevelSequence from fresh with the previously saved blueprint and that also crashes.
> [Inline Frame] UnrealEditor-Core.dll!FWindowsErrorOutputDevice::Serialize::__l2::<lambda>() Line 32 C++
UnrealEditor-Core.dll!FWindowsErrorOutputDevice::Serialize(const wchar_t * Msg, ELogVerbosity::Type Verbosity, const FName & Category) Line 32 C++
UnrealEditor-Core.dll!FOutputDevice::LogfImpl(const wchar_t * Fmt, ...) Line 81 C++
UnrealEditor-Core.dll!UE::Logging::Private::BasicFatalLog(const FLogCategoryBase & Category, const UE::Logging::Private::FStaticBasicLogRecord * Log, ...) Line 1106 C++
UnrealEditor-CoreUObject.dll!StaticAllocateObject(const UClass * InClass, UObject * InOuter, FName InName, EObjectFlags InFlags, EInternalObjectFlags InternalSetFlags, bool bCanRecycleSubobjects, bool * bOutRecycledSubobject, UPackage * ExternalPackage) Line 3486 C++
UnrealEditor-CoreUObject.dll!StaticConstructObject_Internal(const FStaticConstructObjectParameters & Params) Line 4556 C++
UnrealEditor-CoreUObject.dll!FDuplicateDataWriter::GetDuplicatedObject(UObject * Object, bool bCreateIfMissing) Line 180 C++
UnrealEditor-CoreUObject.dll!FDuplicateDataWriter::operator<<(UObject * & Object) Line 80 C++
UnrealEditor-Core.dll!FStructuredArchiveSlot::operator<<(UObject * & Value) Line 260 C++
UnrealEditor-CoreUObject.dll!FObjectProperty::SerializeItem(FStructuredArchiveSlot Slot, void * Value, const void * Defaults) Line 239 C++
[Inline Frame] UnrealEditor-CoreUObject.dll!FUnversionedPropertySerializer::Serialize(FStructuredArchiveSlot) Line 118 C++
UnrealEditor-CoreUObject.dll!SerializeUnversionedProperties(const UStruct * Struct, FStructuredArchiveSlot Slot, unsigned char * Data, UStruct * DefaultsStruct, unsigned char * DefaultsData) Line 1012 C++
UnrealEditor-CoreUObject.dll!UStruct::SerializeTaggedProperties(FStructuredArchiveSlot Slot, unsigned char * Data, UStruct * DefaultsStruct, unsigned char * Defaults, const UObject * BreakRecursionIfFullyLoad) Line 1434 C++
UnrealEditor-CoreUObject.dll!UObject::SerializeScriptProperties(FStructuredArchiveSlot Slot) Line 1924 C++
UnrealEditor-CoreUObject.dll!UObject::Serialize(FStructuredArchiveRecord Record) Line 1702 C++
UnrealEditor-CoreUObject.dll!UObject::Serialize(FArchive & Ar) Line 1575 C++
UnrealEditor-Engine.dll!AActor::Serialize(FArchive & Ar) Line 907 C++
UnrealEditor-CoreUObject.dll!StaticDuplicateObjectEx(FObjectDuplicationParameters & Parameters) Line 3149 C++
UnrealEditor-CoreUObject.dll!StaticDuplicateObject(const UObject * SourceObject, UObject * DestOuter, const FName DestName, EObjectFlags FlagMask, UClass * DestClass, EDuplicateMode::Type DuplicateMode, EInternalObjectFlags InternalFlagsMask) Line 3025 C++
UnrealEditor-MovieSceneTracks.dll!UMovieSceneSpawnableActorBinding::CreateNewCustomBinding(UObject * SourceObject, UMovieScene & OwnerMovieScene) Line 408 C++
UnrealEditor-LevelSequence.dll!ULevelSequence::ConvertOldSpawnables() Line 487 C++
UnrealEditor-LevelSequence.dll!ULevelSequence::PostLoad() Line 422 C++
UnrealEditor-CoreUObject.dll!UObject::ConditionalPostLoad() Line 1317 C++
UnrealEditor-CoreUObject.dll!UObject::PostLoadSubobjects(FObjectInstancingGraph * OuterInstanceGraph) Line 1362 C++
[Inline Frame] UnrealEditor-CoreUObject.dll!UObject::ConditionalPostLoadSubobjects(FObjectInstancingGraph *) Line 1429 C++
UnrealEditor-CoreUObject.dll!UObject::ConditionalPostLoad() Line 1291 C++
UnrealEditor-CoreUObject.dll!UObject::PostLoadSubobjects(FObjectInstancingGraph * OuterInstanceGraph) Line 1362 C++
UnrealEditor-Engine.dll!AActor::PostLoadSubobjects(FObjectInstancingGraph * OuterInstanceGraph) Line 1075 C++
[Inline Frame] UnrealEditor-CoreUObject.dll!UObject::ConditionalPostLoadSubobjects(FObjectInstancingGraph *) Line 1429 C++
UnrealEditor-CoreUObject.dll!UObject::ConditionalPostLoad() Line 1291 C++
UnrealEditor-CoreUObject.dll!UObject::PostLoadSubobjects(FObjectInstancingGraph * OuterInstanceGraph) Line 1362 C++
[Inline Frame] UnrealEditor-CoreUObject.dll!UObject::ConditionalPostLoadSubobjects(FObjectInstancingGraph *) Line 1429 C++
UnrealEditor-CoreUObject.dll!UObject::ConditionalPostLoad() Line 1291 C++
UnrealEditor-CoreUObject.dll!EndLoad(FUObjectSerializeContext * LoadContext, TArray<UPackage *,TSizedDefaultAllocator<32>> * OutLoadedPackages) Line 2325 C++
[Inline Frame] UnrealEditor-CoreUObject.dll!LoadPackageInternal::__l110::<lambda_2>::operator()() Line 1887 C++
UnrealEditor-CoreUObject.dll!LoadPackageInternal(UPackage * InOuter, const FPackagePath & PackagePath, unsigned int LoadFlags, FLinkerLoad * ImportLinker, FArchive * InReaderOverride, const FLinkerInstancingContext * InstancingContext, const FPackagePath * DiffPackagePath) Line 1962 C++
UnrealEditor-CoreUObject.dll!LoadPackage(UPackage * InOuter, const FPackagePath & PackagePath, unsigned int LoadFlags, FArchive * InReaderOverride, const FLinkerInstancingContext * InstancingContext, const FPackagePath * DiffPackagePath) Line 2131 C++
UnrealEditor-CoreUObject.dll!LoadPackage(UPackage * InOuter, const wchar_t * InLongPackageNameOrFilename, unsigned int LoadFlags, FArchive * InReaderOverride, const FLinkerInstancingContext * InstancingContext) Line 2097 C++
UnrealEditor-UnrealEd.dll!UResavePackagesCommandlet::LoadAndSaveOnePackage(const FString & Filename) Line 894 C++
UnrealEditor-UnrealEd.dll!UResavePackagesCommandlet::Main(const FString & Params) Line 1498 C++
UnrealEditor-Cmd.exe!FEngineLoop::PreInitPostStartupScreen(const wchar_t * CmdLine) Line 4178 C++
[Inline Frame] UnrealEditor-Cmd.exe!FEngineLoop::PreInit(const wchar_t *) Line 4468 C++
[Inline Frame] UnrealEditor-Cmd.exe!EnginePreInit(const wchar_t *) Line 49 C++
UnrealEditor-Cmd.exe!GuardedMain(const wchar_t * CmdLine) Line 144 C++
UnrealEditor-Cmd.exe!LaunchWindowsStartup(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow, const wchar_t * CmdLine) Line 266 C++
UnrealEditor-Cmd.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * pCmdLine, int nCmdShow) Line 317 C++
[External Code]
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-306702 in the post.
0 |
Component | UE - Framework - Blueprint Compiler |
---|---|
Affects Versions | 5.5 |
Created | Jul 23, 2025 |
---|---|
Updated | Jul 23, 2025 |