Changing the ComponentClass of a ACharacter twice and trying to set a SkeletalMeshAsset crashes the engine with a "Cannot replace existing object of a different class" message.
The conditions to reproduce this crash are described in the Steps To Reproduce field and should be followed exactly because saving or compiling the BP_Char apparently fixes the broken state. I was also able to reproduce the crash by waiting for the Editor's auto save function to kick in (set EditorPreferences>General>Loading&Saving>AutoSave>FrequencyInMinutes to 1 and wait), at which point the engine crashed with the same call stack.
The error seems to originate on UBlueprintThumbnailRenderer::Draw.
I was also able to reproduce the crash by creating a C++ AActor derived class, adding to it a UPROPERTY(VisibleAnywhere, BlueprintReadOnly) TObjectPtr<USkeletalMeshComponent> Mesh, and initializing it with Mesh = CreateOptionalDefaultSubobject<USkeletalMeshComponent>(TEXT("CharacterMesh0")), later parenting the BP to that class instead of ACharacter.
Lastly, I was able to reproduce the crash on every version I tested, namely versions 5.5, 5.7, and 5.8 (CL48797988).
In a clean project, create a ACharacter BP (BP_Char) and save it.
Create two BP Components from USkeletalMeshComponent (BPC_TypeA and BPC_TypeB) and save both.
Open BP_Char and select the "Mesh" component.
In Component Class, change from SkeletalMeshComponent to BPC_TypeA - don't save or compile.
Select the "Mesh" component again and change Component Class from BPC_TypeA to BPC_TypeB - also don't save or compile.
Select the "Mesh" component again and now try to set any SkeletalMeshAsset - observe the engine becomes unresponsive and crashes.
Call stack from the Editor:
Fatal error: [Link Removed] [Line: 3673]
Cannot replace existing object of a different class.
New Object: /Game/BPs/BPC_SkeletalComponentTypeB.BPC_SkeletalComponentTypeB_C /Engine/Transient.World_5:PersistentLevel.BP_ChildActor_C_0.CharacterMesh0
Existing Object: /Game/BPs/BPC_SkeletalComponentTypeA.BPC_SkeletalComponentTypeA_C /Engine/Transient.World_5:PersistentLevel.BP_ChildActor_C_0.CharacterMesh0 (0x00040040 0x00008000)
UnrealEditor_CoreUObject!StaticAllocateObject() [D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectGlobals.cpp:3673]
UnrealEditor_CoreUObject!StaticConstructObject_Internal() [D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectGlobals.cpp:4963]
UnrealEditor_CoreUObject!FObjectInstancingGraph::GetInstancedSubobject() [D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\CoreNative.cpp:340]
UnrealEditor_CoreUObject!FObjectInstancingGraph::InstancePropertyValue() [D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\CoreNative.cpp:467]
UnrealEditor_CoreUObject!FObjectPropertyBase::InstanceSubobjects() [D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\PropertyBaseObject.cpp:103]
UnrealEditor_CoreUObject!UStruct::InstanceSubobjectTemplates() [D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\Class.cpp:2745]
UnrealEditor_CoreUObject!FObjectInitializer::InstanceSubobjects() [D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectGlobals.cpp:4538]
UnrealEditor_CoreUObject!FObjectInitializer::PostConstructInit() [D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectGlobals.cpp:4410]
UnrealEditor_CoreUObject!FObjectInitializer::~FObjectInitializer() [D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectGlobals.cpp:4223]
UnrealEditor_CoreUObject!StaticConstructObject_Internal() [D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectGlobals.cpp:4969]
UnrealEditor_Engine!UWorld::SpawnActor() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\LevelActor.cpp:671]
UnrealEditor_Engine!UWorld::SpawnActor() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\LevelActor.cpp:451]
UnrealEditor_UnrealEd!FClassActorThumbnailScene::SpawnPreviewActor() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\ThumbnailHelpers.cpp:1121]
UnrealEditor_UnrealEd!UClassThumbnailRenderer::Draw() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\ThumbnailRendering\ClassThumbnailRenderer.cpp:47]
UnrealEditor_UnrealEd!ThumbnailTools::RenderThumbnail() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\ObjectTools.cpp:5666]
UnrealEditor_UnrealEd!ThumbnailTools::GenerateThumbnailForObjectToSaveToDisk() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\ObjectTools.cpp:5757]
UnrealEditor_UnrealEd!UUnrealEdEngine::GeneratePackageThumbnailsIfRequired() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\UnrealEdSrv.cpp:453]
UnrealEditor_UnrealEd!UUnrealEdEngine::Exec() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\UnrealEdSrv.cpp:653]
UnrealEditor_UnrealEd!FEditorFileUtils::AutosaveContentPackagesEx() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\FileHelpers.cpp:3631]
UnrealEditor_UnrealEd!FPackageAutoSaver::AttemptAutoSave() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\PackageAutoSaver.cpp:353]
UnrealEditor_UnrealEd!UUnrealEdEngine::Tick() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\UnrealEdEngine.cpp:565]
UnrealEditor!FEngineLoop::Tick() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp:5828]
UnrealEditor!GuardedMain() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Launch.cpp:190]
UnrealEditor!GuardedMainWrapper() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:123]
UnrealEditor!LaunchWindowsStartup() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:277]
UnrealEditor!WinMain() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:334]
UnrealEditor!__scrt_common_main_seh() [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
kernel32
ntdll
----------------------------
Call stack while running a C++ Project and debugging from Visual Studio:
> [Inline Frame] UnrealEditor-Core.dll!UE::Logging::Private::BasicFatalLogV::__l2::<lambda_1>::operator()() Line 1708 C++
[Inline Frame] UnrealEditor-Core.dll!UE::Logging::Private::BasicFatalLogV(const UE::Logging::Private::FStaticBasicLogRecord & ProgramCounter, void *) Line 1708 C++
UnrealEditor-Core.dll!UE::Logging::Private::BasicFatalLog(const UE::Logging::Private::FStaticBasicLogRecord & Log, const FLogCategoryBase * Category, ...) Line 1718 C++
UnrealEditor-CoreUObject.dll!StaticAllocateObject(const UClass * InClass, UObject * InOuter, FName InName, EObjectFlags InFlags, EInternalObjectFlags InternalSetFlags, bool bCanRecycleSubobjects, bool * bOutRecycledSubobject, UPackage * ExternalPackage, int SerialNumber, FRemoteObjectId RemoteId, FGCReconstructionGuard * GCGuard) Line 3673 C++
UnrealEditor-CoreUObject.dll!StaticConstructObject_Internal(const FStaticConstructObjectParameters & Params) Line 4963 C++
UnrealEditor-CoreUObject.dll!FObjectInstancingGraph::GetInstancedSubobject(UObject * SourceSubobject, UObject * CurrentValue, UObject * CurrentObject, EInstancePropertyValueFlags Flags) Line 340 C++
UnrealEditor-CoreUObject.dll!FObjectInstancingGraph::InstancePropertyValue(UObject * SubObjectTemplate, TNotNull<UObject *> CurrentValue, TNotNull<UObject *> Owner, EInstancePropertyValueFlags Flags) Line 467 C++
UnrealEditor-CoreUObject.dll!FObjectPropertyBase::InstanceSubobjects(void * Data, const void * DefaultData, TNotNull<UObject *> InOwner, FObjectInstancingGraph * InstanceGraph) Line 103 C++
UnrealEditor-CoreUObject.dll!UStruct::InstanceSubobjectTemplates(TNotNull<void *> Data, const void * DefaultData, const UStruct * DefaultStruct, TNotNull<UObject *> Owner, FObjectInstancingGraph * InstanceGraph) Line 2745 C++
UnrealEditor-CoreUObject.dll!FObjectInitializer::InstanceSubobjects(UClass * Class, bool bNeedInstancing, bool bNeedSubobjectInstancing) Line 4538 C++
UnrealEditor-CoreUObject.dll!FObjectInitializer::PostConstructInit() Line 4410 C++
UnrealEditor-CoreUObject.dll!FObjectInitializer::~FObjectInitializer() Line 4223 C++
UnrealEditor-CoreUObject.dll!StaticConstructObject_Internal(const FStaticConstructObjectParameters & Params) Line 4969 C++
[Inline Frame] UnrealEditor-Engine.dll!NewObject(UObject *) Line 1913 C++
UnrealEditor-Engine.dll!UWorld::SpawnActor(UClass * Class, const UE::Math::TTransform<double> * UserTransformPtr, const FActorSpawnParameters & SpawnParameters) Line 671 C++
UnrealEditor-Engine.dll!UWorld::SpawnActor(UClass * Class, const UE::Math::TVector<double> * Location, const UE::Math::TRotator<double> * Rotation, const FActorSpawnParameters & SpawnParameters) Line 451 C++
[Inline Frame] UnrealEditor-UnrealEd.dll!UWorld::SpawnActor(UClass *) Line 3690 C++
UnrealEditor-UnrealEd.dll!FClassActorThumbnailScene::SpawnPreviewActor(UClass * InClass) Line 1121 C++
[Inline Frame] UnrealEditor-UnrealEd.dll!FBlueprintThumbnailScene::SetBlueprint(UBlueprint *) Line 1233 C++
UnrealEditor-UnrealEd.dll!UBlueprintThumbnailRenderer::Draw(UObject * Object, int X, int Y, unsigned int Width, unsigned int Height, FRenderTarget * RenderTarget, FCanvas * Canvas, bool bAdditionalViewFamily) Line 52 C++
UnrealEditor-UnrealEd.dll!ThumbnailTools::RenderThumbnail(UObject * InObject, const unsigned int InImageWidth, const unsigned int InImageHeight, ThumbnailTools::EThumbnailTextureFlushMode::Type InFlushMode, FTextureRenderTargetResource * InTextureRenderTargetResource, FObjectThumbnail * OutThumbnail) Line 5666 C++
UnrealEditor-UnrealEd.dll!FAssetThumbnailPool::LoadThumbnail::__l20::<lambda_1>::operator()() Line 2263 C++
UnrealEditor-UnrealEd.dll!FAssetThumbnailPool::LoadThumbnail(TSharedRef<FAssetThumbnailPool::FThumbnailInfo,1> ThumbnailInfo, bool & bIsAssetStillCompiling, const FAssetData & CustomAssetToRender) Line 2271 C++
UnrealEditor-UnrealEd.dll!FAssetThumbnailPool::Tick(float DeltaTime) Line 2160 C++
[Inline Frame] UnrealEditor-UnrealEd.dll!FTickableEditorObject::TickObjects::__l2::<lambda_1>::operator()(FTickableObjectBase * TickableObject) Line 33 C++
[Inline Frame] UnrealEditor-UnrealEd.dll!Invoke(FTickableEditorObject::TickObjects::__l2::<lambda_1> &) Line 47 C++
UnrealEditor-UnrealEd.dll!UE::Core::Private::Function::TFunctionRefCaller<`FTickableEditorObject::TickObjects'::`2'::<lambda_1>,void,FTickableObjectBase *>::Call(void * Obj, FTickableObjectBase * & <Params_0>) Line 292 C++
[Inline Frame] UnrealEditor-Engine.dll!UE::Core::Private::Function::TFunctionRefBase<UE::Core::Private::Function::FFunctionRefStoragePolicy,void __cdecl(FTickableObjectBase *)>::operator()(FTickableObjectBase * <Params_0>) Line 414 C++
UnrealEditor-Engine.dll!FTickableObjectBase::SimpleTickObjects(FTickableObjectBase::FTickableStatics & Statics, TFunctionRef<void __cdecl(FTickableObjectBase *)> TickFunc) Line 116 C++
[Inline Frame] UnrealEditor-UnrealEd.dll!FTickableEditorObject::TickObjects(const float) Line 30 C++
UnrealEditor-UnrealEd.dll!UEditorEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 1929 C++
UnrealEditor-UnrealEd.dll!UUnrealEdEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 537 C++
UnrealEditor.exe!FEngineLoop::Tick() Line 5828 C++
[Inline Frame] UnrealEditor.exe!EngineTick() Line 60 C++
UnrealEditor.exe!GuardedMain(const wchar_t * CmdLine) Line 190 C++
UnrealEditor.exe!GuardedMainWrapper(const wchar_t * CmdLine) Line 123 C++
UnrealEditor.exe!LaunchWindowsStartup(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow, const wchar_t * CmdLine) Line 277 C++
UnrealEditor.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * pCmdLine, int nCmdShow) Line 334 C++
[External Code]
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-361673 in the post.
| 0 |
| Component | UE - Editor - Content Pipeline |
|---|---|
| Affects Versions | 5.5, 5.7, 5.8 |
| Created | Jan 22, 2026 |
|---|---|
| Updated | Feb 26, 2026 |