Description

If a Blueprint is made from a custom Blueprintable StaticMeshComponent, and that Blueprint is added as a component to another Blueprint, an Ensure is triggered.

No Ensure occurs if the custom native StaticMeshComponent is added to the Blueprint instead.

Steps to Reproduce
  1. Create new code project using the First Person template.
  2. Build the project in Visual Studio.
  3. Open the project in the Editor.
  4. Add a new code class to the project that derives from UStaticMeshComponent.
    • Name the new class TestComponent.
  5. Close the Editor.
  6. In the header file for the new class, add the following UCLASS specifiers: Blueprintable, meta = (BlueprintSpawnableComponent)
  7. Add the following code to the class header file:
    public:
    	UPROPERTY(EditAnywhere, Category = Default)
    	USpotLightComponent* SpotLight;
    
    	UTestComponent(const FObjectInitializer& ObjectInitializer);
    
  8. Add the following constructor code in the class source file:
    UTestComponent::UTestComponent(const FObjectInitializer& ObjectInitializer)
    : Super(ObjectInitializer)
    {
    	SpotLight = ObjectInitializer.CreateDefaultSubobject<USpotLightComponent>(this, TEXT("SpotLight"));
    	SpotLight->AttachParent = this;
    }
    
  9. Build the project in Visual Studio.
  10. Open the project in Visual Studio.
  11. Create a new Blueprint from the new TestComponent class.
  12. Create another new Blueprint and add the Blueprint created in the previous step as a component.

RESULT:
An Ensure is triggered.

EXPECTED:
No Ensure is triggered.

WORKAROUND:
Adding the native custom StaticMeshComponent to the Blueprint instead of using the Blueprint made from the native custom component works without triggering an Ensure.

Callstack

The following is the callstack generated by the Ensure, as reported in the Output Log window:

LogOutputDevice: === Handled error: ===
Ensure condition failed: false [File:D:\Source\UnrealEngine-4.8.3-release\Engine\Source\Runtime\Engine\Private\Components\SceneComponent.cpp] [Line: 1149]
Template Mismatch during attachment. Attaching instanced component to template component. Parent 'Default__NewBlueprint_C' Self 'SpotLight'
Stack: 
UE4Editor-Core.dll!FWindowsPlatformStackWalk::StackWalkAndDump() {0x000007feea3a7616} + 0 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\co
UE4Editor-Core.dll!FDebug::EnsureFailed() {0x000007feea1d89b1} + 0 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\co
UE4Editor-Core.dll!FDebug::EnsureNotFalse_OptionallyLogFormattedEnsureMessageReturningFalse() {0x000007feea1d8c63} + 0 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\co
UE4Editor-Engine.dll!USceneComponent::AttachTo() {0x000007fee750cc96} + 122 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\en
UE4Editor-Engine.dll!USceneComponent::OnRegister() {0x000007fee753c004} + 0 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\en
UE4Editor-Engine.dll!ULightComponentBase::OnRegister() {0x000007fee74d7447} + 0 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\en
UE4Editor-Engine.dll!ULightComponent::OnRegister() {0x000007fee74d73ee} + 0 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\en
UE4Editor-Engine.dll!UActorComponent::ExecuteRegisterEvents() {0x000007fee74428d4} + 0 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\en
UE4Editor-Engine.dll!UActorComponent::RegisterComponentWithWorld() {0x000007fee746a24d} + 0 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\en
UE4Editor-Engine.dll!UActorComponent::RegisterComponentWithWorld() {0x000007fee746a337} + 0 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\en
UE4Editor-Engine.dll!UActorComponent::RegisterComponent() {0x000007fee7469c9e} + 0 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\en
UE4Editor-Engine.dll!`anonymous namespace'::RegisterInstancedComponent() {0x000007fee6f4261b} + 0 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\en
UE4Editor-Engine.dll!`anonymous namespace'::RegisterInstancedComponent() {0x000007fee6f426ed} + 0 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\en
UE4Editor-Engine.dll!USimpleConstructionScript::ExecuteScriptOnActor() {0x000007fee6f13210} + 0 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\en
UE4Editor-Engine.dll!AActor::ExecuteConstruction() {0x000007fee6938cfd} + 0 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\en
UE4Editor-Engine.dll!AActor::RerunConstructionScripts() {0x000007fee69770b4} + 0 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\en
UE4Editor-Engine.dll!AActor::PostEditChangeProperty() {0x000007fee69632ef} + 0 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\en
UE4Editor-CoreUObject.dll!UObject::PostEditChange() {0x000007fee990fcb4} + 0 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\co
UE4Editor-UnrealEd.dll!FBlueprintEditorUtils::PostEditChangeBlueprintActors() {0x000007fee48b1af3} + 0 bytes [d:\source\unrealengine-4.8.3-release\engine\source\editor\unr
UE4Editor-Kismet.dll!FBlueprintEditor::OnBlueprintChangedImpl() {0x000007fee0f84aa2} + 0 bytes [d:\source\unrealengine-4.8.3-release\engine\source\editor\kis
UE4Editor-Kismet.dll!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,TTypeWrapper<void> __cdecl(UBlueprint * __ptr64)>::Execute() {0x000007fee0f3e7cc} + 35 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\co
UE4Editor-Kismet.dll!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,void __cdecl(UBlueprint * __ptr64)>::ExecuteIfSafe() {0x000007fee0f41fcc} + 11 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\co
UE4Editor-Engine.dll!TBaseMulticastDelegate<void,UBlueprint * __ptr64>::Broadcast() {0x000007fee685d21d} + 14 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\co
UE4Editor-UnrealEd.dll!FBlueprintEditorUtils::MarkBlueprintAsStructurallyModified() {0x000007fee48ae202} + 9 bytes [d:\source\unrealengine-4.8.3-release\engine\source\editor\unr
UE4Editor-Kismet.dll!SSCSEditor::AddNewNode() {0x000007fee11a1086} + 0 bytes [d:\source\unrealengine-4.8.3-release\engine\source\editor\kis
UE4Editor-Kismet.dll!SSCSEditor::AddNewComponent() {0x000007fee11a0af6} + 54 bytes [d:\source\unrealengine-4.8.3-release\engine\source\editor\kis
UE4Editor-Kismet.dll!SSCSEditor::PerformComboAddClass() {0x000007fee1248792} + 14 bytes [d:\source\unrealengine-4.8.3-release\engine\source\editor\kis
UE4Editor-Kismet.dll!TBaseSPMethodDelegateInstance<0,SSCSEditor,0,UActorComponent * __ptr64 __cdecl(TSubclassOf<UActorComponent>,enum EComponentCreateAction::Type,UObject * __ptr64)>::Execute() {0x000007fee11e68d0} + 43 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\co
UE4Editor-UnrealEd.dll!SComponentClassCombo::OnAddComponentSelectionChanged() {0x000007fee437226e} + 247 bytes [d:\source\unrealengine-4.8.3-release\engine\source\editor\unr
UE4Editor-UnrealEd.dll!TBaseSPMethodDelegateInstance<0,SComponentClassCombo,0,TTypeWrapper<void> __cdecl(TSharedPtr<FComponentClassComboEntry,0>,enum ESelectInfo::Type)>::Execute() {0x000007fee433c38a} + 55 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\co
UE4Editor-UnrealEd.dll!TBaseSPMethodDelegateInstance<0,SComponentClassCombo,0,void __cdecl(TSharedPtr<FComponentClassComboEntry,0>,enum ESelectInfo::Type)>::ExecuteIfSafe() {0x000007fee433e805} + 40 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\co
UE4Editor-UnrealEd.dll!TBaseDelegate<void,TSharedPtr<FComponentClassComboEntry,0>,enum ESelectInfo::Type>::ExecuteIfBound() {0x000007fee433d6a1} + 41 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\co
UE4Editor-UnrealEd.dll!SListView<TSharedPtr<FComponentClassComboEntry,0> >::Private_SignalSelectionChanged() {0x000007fee43a13da} + 33 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\sl
UE4Editor-UnrealEd.dll!SComboRow<TSharedPtr<FString,0> >::OnMouseButtonDown() {0x000007fee437edbb} + 0 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\sl
UE4Editor-Slate.dll!<lambda_2944fcd867c13fce09ac1f6fe9cbe583>::operator()() {0x000007fee5f23bf3} + 21 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\sl
UE4Editor-Slate.dll!FEventRouter::Route<FReply,FEventRouter::FBubblePolicy,FPointerEvent,<lambda_2944fcd867c13fce09ac1f6fe9cbe583> >() {0x000007fee5edc2e6} + 47 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\sl
UE4Editor-Slate.dll!FSlateApplication::ProcessMouseButtonDownEvent() {0x000007fee5f980c8} + 102 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\sl
UE4Editor-Slate.dll!FSlateApplication::OnMouseDown() {0x000007fee5f85709} + 19 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\sl
UE4Editor-Core.dll!FWindowsApplication::ProcessDeferredMessage() {0x000007feea2ed91f} + 32 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\co
UE4Editor-Core.dll!FWindowsApplication::DeferMessage() {0x000007feea2db4a7} + 74 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\co
UE4Editor-Core.dll!FWindowsApplication::ProcessMessage() {0x000007feea2eefa5} + 44 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\co
UE4Editor-Core.dll!FWindowsApplication::AppWndProc() {0x000007feea2d77fc} + 0 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\co
USER32.dll {0x0000000077329bd1} + 0 bytes
USER32.dll {0x00000000773298da} + 0 bytes
UE4Editor-Core.dll!FWindowsPlatformMisc::PumpMessages() {0x000007feea39eb46} + 48 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\co
UE4Editor.exe!FEngineLoop::Tick() {0x000000013f0d3c7a} + 8 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\la
UE4Editor.exe!GuardedMain() {0x000000013f0c49cc} + 0 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\la
UE4Editor.exe!GuardedMainWrapper() {0x000000013f0c4a4a} + 5 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\la
UE4Editor.exe!WinMain() {0x000000013f0d65c9} + 17 bytes [d:\source\unrealengine-4.8.3-release\engine\source\runtime\la
UE4Editor.exe!__tmainCRTStartup() {0x000000013f0d75d9} + 21 bytes [f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c:618]
kernel32.dll {0x00000000772059ed} + 0 bytes
ntdll.dll {0x000000007743c541} + 0 bytes
ntdll.dll {0x000000007743c541} + 0 bytes

Have Comments or More Details?

Head over to the existing Questions & Answers thread and let us know what's up.

14
Login to Vote

Won't Fix
ComponentUE - Gameplay - Components
Affects Versions4.8.34.94.104.19
CreatedAug 24, 2015
ResolvedAug 18, 2021
UpdatedAug 18, 2021