UserWidget contains null extensions entry, but only crashes when using a 'notify' property field.

I have an enum property on my BP that whenever i use in the ‘Event Pre Construct’ chain of a user widget causes the editor to crash with a null exception. The BP property is a ‘private, instance editable’ enum that’s on a widget component. The widget component is added to another user widget. Where the property is used to make changes to nested components which have their property fields hidden via the editor.

This occurs even when only printing the name of the enum property’s value, Set.h crashes in the ‘FindIndexByHash’ function with Elements having protected memory. Then on re-launch, the editor crashes on line 2261 of UserWidget.cpp. Specifically, the single entry in the Extensions array is null.

//Function from UE's own UserWidget.cpp file
UUserWidgetExtension* UUserWidget::GetExtension(TSubclassOf<UUserWidgetExtension> InExtensionType) const
{
	for (UUserWidgetExtension* Extension : Extensions)
	{
		if (Extension->IsA(InExtensionType))
		{
			return Extension;
		}
	}
	return nullptr;
}

If I add a null check to the loop, and return a nullptr as if the loop was empty, the editor just fails elsewhere multiple places down the line.

I employ this technique successfully in multiple dialogs to customize nested UI prefabs from their owning UI dialog. It’s only in this one enum instance it fails.

Does anyone have some ideas on why/how this has occurred so i can mitigate it?

With further digging, the issue appears to persist regardless of whether I use an enum or name variable.

Of interest is that when using the name variable, the editor only crashes when re-launching instead of when merely saving/compiling the parent widget.

Below i the callstack.

 	UnrealEditor-UMG.dll!UUserWidget::GetExtension(TSubclassOf<UUserWidgetExtension> InExtensionType) Line 2261	C++
 	[Inline Frame] UnrealEditor-UMG.dll!UUserWidget::GetExtension() Line 1154	C++
	UnrealEditor-UMG.dll!UE::UMG::Private::FindOrAddWidgetNotifyExtension(UWidget * Widget) Line 1850	C++
 	UnrealEditor-UMG.dll!UWidget::K2_AddFieldValueChangedDelegate(FFieldNotificationId InFieldId, FFieldValueChangedDynamicDelegate InDelegate) Line 1917	C++
 	UnrealEditor-UMG.dll!UWidget::execK2_AddFieldValueChangedDelegate(UObject * Context, FFrame & Stack, void * const Z_Param__Result) Line 981	C++
 	UnrealEditor-CoreUObject.dll!UFunction::Invoke(UObject * Obj, FFrame & Stack, void * const Z_Param__Result) Line 6665	C++
 	UnrealEditor-CoreUObject.dll!UObject::CallFunction(FFrame & Stack, void * const Z_Param__Result, UFunction * Function) Line 1139	C++
 	[Inline Frame] UnrealEditor-CoreUObject.dll!FFrame::Step(UObject *) Line 477	C++
 	UnrealEditor-CoreUObject.dll!ProcessLocalScriptFunction(UObject * Context, FFrame & Stack, void * const Z_Param__Result) Line 1209	C++
 	UnrealEditor-CoreUObject.dll!ProcessScriptFunction<void (__cdecl*)(UObject *,FFrame &,void *)>(UObject * Context, UFunction * Function, FFrame & Stack, void * const Z_Param__Result, void(*)(UObject *, FFrame &, void *) ExecFtor) Line 1039	C++
 	UnrealEditor-CoreUObject.dll!ProcessLocalFunction(UObject * Context, UFunction * Fn, FFrame & Stack, void * const Z_Param__Result) Line 1279	C++
 	[Inline Frame] UnrealEditor-CoreUObject.dll!FFrame::Step(UObject *) Line 477	C++
 	UnrealEditor-CoreUObject.dll!ProcessLocalScriptFunction(UObject * Context, FFrame & Stack, void * const Z_Param__Result) Line 1209	C++
 	UnrealEditor-CoreUObject.dll!UObject::ProcessInternal(UObject * Context, FFrame & Stack, void * const Z_Param__Result) Line 1306	C++
 	UnrealEditor-CoreUObject.dll!ProcessScriptFunction<void (__cdecl*)(UObject *,FFrame &,void *)>(UObject * Context, UFunction * Function, FFrame & Stack, void * const Z_Param__Result, void(*)(UObject *, FFrame &, void *) ExecFtor) Line 1039	C++
 	UnrealEditor-CoreUObject.dll!UObject::CallFunction(FFrame & Stack, void * const Z_Param__Result, UFunction * Function) Line 1149	C++
 	[Inline Frame] UnrealEditor-CoreUObject.dll!FFrame::Step(UObject *) Line 477	C++
 	UnrealEditor-CoreUObject.dll!ProcessLocalScriptFunction(UObject * Context, FFrame & Stack, void * const Z_Param__Result) Line 1209	C++
 	UnrealEditor-CoreUObject.dll!ProcessScriptFunction<void (__cdecl*)(UObject *,FFrame &,void *)>(UObject * Context, UFunction * Function, FFrame & Stack, void * const Z_Param__Result, void(*)(UObject *, FFrame &, void *) ExecFtor) Line 1039	C++
 	UnrealEditor-CoreUObject.dll!ProcessLocalFunction(UObject * Context, UFunction * Fn, FFrame & Stack, void * const Z_Param__Result) Line 1279	C++
 	[Inline Frame] UnrealEditor-CoreUObject.dll!FFrame::Step(UObject *) Line 477	C++
 	UnrealEditor-CoreUObject.dll!ProcessLocalScriptFunction(UObject * Context, FFrame & Stack, void * const Z_Param__Result) Line 1209	C++
 	UnrealEditor-CoreUObject.dll!UObject::ProcessInternal(UObject * Context, FFrame & Stack, void * const Z_Param__Result) Line 1306	C++
 	UnrealEditor-CoreUObject.dll!UFunction::Invoke(UObject * Obj, FFrame & Stack, void * const Z_Param__Result) Line 6665	C++
 	UnrealEditor-CoreUObject.dll!UObject::ProcessEvent(UFunction * Function, void * Parms) Line 2145	C++
 	[Inline Frame] UnrealEditor-UMG.dll!UUserWidget::PreConstruct(bool) Line 1735	C++