[CRASH] StateTree with custom schema and context

I have setup my state tree to have a custom context using the following schema, however the following crashes when inserting a “context object class” in the array. Strangely when I attach my debugger it just breaks at that point and does not crash.

|>|UnrealEditor-CoreUObject.dll!UStruct::IsChildOf(const UStruct * SomeBase) Line 2474|C++|
|---|---|---|
| |UnrealEditor-StateTreeEditorModule.dll!UStateTreeEditorData::FindContextData(const UStruct * ObjectType, const FString ObjectNameHint) Line 333|C++|
| |UnrealEditor-StateTreeEditorModule.dll!UE::StateTreeEditor::Internal::ModifyRow(IDetailPropertyRow & ChildRow, const FGuid & ID, UStateTreeEditorData * EditorData) Line 216|C++|
| |UnrealEditor-StructUtilsEditor.dll!FInstancedStructDataDetails::GenerateChildContent(IDetailChildrenBuilder & ChildBuilder) Line 320|C++|
| |UnrealEditor-PropertyEditor.dll!FDetailCustomBuilderRow::OnGenerateChildren(TArray<TSharedRef<FDetailTreeNode,1>,TSizedDefaultAllocator<32>> & OutChildren) Line 76|C++|
| |UnrealEditor-PropertyEditor.dll!FDetailItemNode::GenerateChildren(bool bUpdateFilteredNodes) Line 443|C++|
| |UnrealEditor-PropertyEditor.dll!FDetailPropertyRow::GenerateChildrenForPropertyNode(TSharedPtr<FPropertyNode,1> & RootPropertyNode, TArray<TSharedRef<FDetailTreeNode,1>,TSizedDefaultAllocator<32>> & OutChildren) Line 420|C++|
| |UnrealEditor-PropertyEditor.dll!FDetailPropertyRow::OnGenerateChildren(TArray<TSharedRef<FDetailTreeNode,1>,TSizedDefaultAllocator<32>> & OutChildren) Line 405|C++|
| |UnrealEditor-PropertyEditor.dll!FDetailItemNode::GenerateChildren(bool bUpdateFilteredNodes) Line 437|C++|
| |UnrealEditor-PropertyEditor.dll!FDetailCustomBuilderRow::OnGenerateChildren(TArray<TSharedRef<FDetailTreeNode,1>,TSizedDefaultAllocator<32>> & OutChildren) Line 82|C++|
| |UnrealEditor-PropertyEditor.dll!FDetailItemNode::GenerateChildren(bool bUpdateFilteredNodes) Line 443|C++|
| |UnrealEditor-PropertyEditor.dll!FDetailCategoryImpl::GenerateNodesFromCustomizations(const TArray<FDetailLayoutCustomization,TSizedDefaultAllocator<32>> & InCustomizationList, TArray<TSharedRef<FDetailTreeNode,1>,TSizedDefaultAllocator<32>> & OutNodeList) Line 1089|C++|
| |UnrealEditor-PropertyEditor.dll!FDetailCategoryImpl::GenerateChildrenForSingleLayout(const FDetailLayout & Layout, const TArray<FDetailLayoutCustomization,TSizedDefaultAllocator<32>> & Customizations, TArray<TSharedRef<FDetailTreeNode,1>,TSizedDefaultAllocator<32>> & OutChildren) Line 1111|C++|
| |UnrealEditor-PropertyEditor.dll!FDetailCategoryImpl::GenerateChildrenForLayouts() Line 1127|C++|
| |UnrealEditor-PropertyEditor.dll!FDetailCategoryImpl::GenerateLayout() Line 1303|C++|
| |UnrealEditor-PropertyEditor.dll!FDetailLayoutBuilderImpl::BuildCategories(const TMap<FName,TSharedPtr<FDetailCategoryImpl,1>,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<FName,TSharedPtr<FDetailCategoryImpl,1>,0>> & CategoryMap, TArray<TSharedRef<FDetailCategoryImpl,1>,TSizedDefaultAllocator<32>> & OutSimpleCategories, TArray<TSharedRef<FDetailCategoryImpl,1>,TSizedDefaultAllocator<32>> & OutAdvancedCategories) Line 354|C++|
| |UnrealEditor-PropertyEditor.dll!FDetailLayoutBuilderImpl::GenerateDetailLayout() Line 492|C++|
| |UnrealEditor-PropertyEditor.dll!SDetailsViewBase::UpdateSinglePropertyMap(TSharedPtr<FComplexPropertyNode,1> InRootPropertyNode, FDetailLayoutData & LayoutData, bool bIsExternal) Line 697|C++|
| |UnrealEditor-PropertyEditor.dll!SDetailsViewBase::UpdatePropertyMaps() Line 635|C++|
| |UnrealEditor-PropertyEditor.dll!SDetailsView::PostSetObject(const TArray<FDetailsViewObjectRoot,TSizedDefaultAllocator<32>> & Roots) Line 1048|C++|
| |UnrealEditor-PropertyEditor.dll!SDetailsView::SetObjectArrayPrivate(const TArray<UObject *,TSizedDefaultAllocator<32>> & InObjects) Line 809|C++|
| |UnrealEditor-PropertyEditor.dll!SDetailsView::ForceRefresh() Line 535|C++|
| |[Inline Frame] UnrealEditor-StateTreeEditorModule.dll!FStateTreeEditorDataDetails::CustomizeDetails::__l2::<lambda_2>::operator()() Line 202|C++|
| |[Inline Frame] UnrealEditor-StateTreeEditorModule.dll!Invoke(FStateTreeEditorDataDetails::CustomizeDetails::__l2::<lambda_2> &) Line 47|C++|
| |[Inline Frame] UnrealEditor-StateTreeEditorModule.dll!UE::Core::Private::Tuple::TTupleBase<TIntegerSequence<unsigned int>>::ApplyAfter(FStateTreeEditorDataDetails::CustomizeDetails::__l2::<lambda_2> &) Line 309|C++|
| |UnrealEditor-StateTreeEditorModule.dll!?ExecuteIfSafe@?$TBaseFunctorDelegateInstance@$$A6AXXZUFDefaultDelegateUserPolicy@@V<lambda_2>@?1??CustomizeDetails@FStateTreeEditorDataDetails@@UEAAXAEAVIDetailLayoutBuilder@@@Z@$$V@@UEBA_NXZ() Line 871|C++|
| |[Inline Frame] UnrealEditor-PropertyEditor.dll!TMulticastDelegateBase<FDefaultDelegateUserPolicy>::Broadcast() Line 254|C++|
| |[Inline Frame] UnrealEditor-PropertyEditor.dll!TMulticastDelegate<void __cdecl(void),FDefaultDelegateUserPolicy>::Broadcast() Line 956|C++|
| |UnrealEditor-PropertyEditor.dll!FPropertyNode::BroadcastPropertyChangedDelegates() Line 3210|C++|
| |UnrealEditor-PropertyEditor.dll!FPropertyNode::NotifyPostChange(FPropertyChangedEvent & InPropertyChangedEvent, FNotifyHook * InNotifyHook) Line 3139|C++|
| |UnrealEditor-PropertyEditor.dll!FPropertyValueImpl::AddChild() Line 1212|C++|
| |UnrealEditor-PropertyEditor.dll!FPropertyHandleArray::AddItem() Line 4991|C++|
| |UnrealEditor-PropertyEditor.dll!FPropertyEditor::OnAddItem() Line 210|C++|
| |[Inline Frame] UnrealEditor-PropertyEditor.dll!Invoke(void(FPropertyEditor::*)() PtrMemFun, FPropertyEditor * &) Line 66|C++|
| |[Inline Frame] UnrealEditor-PropertyEditor.dll!UE::Core::Private::Tuple::TTupleBase<TIntegerSequence<unsigned int>>::ApplyAfter(void(FPropertyEditor::*)() &) Line 309|C++|
| |UnrealEditor-PropertyEditor.dll!V::TBaseSPMethodDelegateInstance::ExecuteIfSafe() Line 298|C++|
| |[Inline Frame] UnrealEditor-PropertyEditor.dll!TDelegate<void __cdecl(void),FDefaultDelegateUserPolicy>::ExecuteIfBound() Line 570|C++|
| |UnrealEditor-PropertyEditor.dll!SDetailsViewBase::Tick(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime) Line 1220|C++|
| |UnrealEditor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1483|C++|
| |UnrealEditor-SlateCore.dll!SCompoundWidget::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 46|C++|
| |UnrealEditor-Slate.dll!SBorder::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 129|C++|
| |UnrealEditor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1622|C++|
| |UnrealEditor-SlateCore.dll!SOverlay::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 207|C++|
| |UnrealEditor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1622|C++|
| |UnrealEditor-SlateCore.dll!SPanel::PaintArrangedChildren(const FPaintArgs & Args, const FArrangedChildren & ArrangedChildren, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 31|C++|
| |UnrealEditor-SlateCore.dll!SPanel::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 12|C++|
| |UnrealEditor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1622|C++|
| |UnrealEditor-SlateCore.dll!SCompoundWidget::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 46|C++|
| |UnrealEditor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1622|C++|
| |UnrealEditor-SlateCore.dll!SPanel::PaintArrangedChildren(const FPaintArgs & Args, const FArrangedChildren & ArrangedChildren, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 31|C++|
| |UnrealEditor-Slate.dll!SSplitter::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 253|C++|
| |UnrealEditor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1622|C++|
| |UnrealEditor-SlateCore.dll!SCompoundWidget::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 46|C++|
| |UnrealEditor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1622|C++|
| |UnrealEditor-SlateCore.dll!SPanel::PaintArrangedChildren(const FPaintArgs & Args, const FArrangedChildren & ArrangedChildren, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 31|C++|
| |UnrealEditor-Slate.dll!SSplitter::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 253|C++|
| |UnrealEditor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1622|C++|
| |UnrealEditor-SlateCore.dll!SOverlay::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 207|C++|
| |UnrealEditor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1622|C++|
| |UnrealEditor-SlateCore.dll!SPanel::PaintArrangedChildren(const FPaintArgs & Args, const FArrangedChildren & ArrangedChildren, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 31|C++|
| |UnrealEditor-SlateCore.dll!SPanel::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 12|C++|
| |UnrealEditor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1622|C++|
| |UnrealEditor-SlateCore.dll!SOverlay::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 207|C++|
| |UnrealEditor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1622|C++|
| |UnrealEditor-SlateCore.dll!SCompoundWidget::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 46|C++|
| |UnrealEditor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1622|C++|
| |UnrealEditor-SlateCore.dll!SPanel::PaintArrangedChildren(const FPaintArgs & Args, const FArrangedChildren & ArrangedChildren, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 31|C++|
| |UnrealEditor-SlateCore.dll!SPanel::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 12|C++|
| |UnrealEditor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1622|C++|
| |UnrealEditor-SlateCore.dll!SCompoundWidget::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 46|C++|
| |UnrealEditor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1622|C++|
| |UnrealEditor-SlateCore.dll!SCompoundWidget::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 46|C++|
| |UnrealEditor-Slate.dll!SBorder::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 129|C++|
| |UnrealEditor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1622|C++|
| |UnrealEditor-SlateCore.dll!SOverlay::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 207|C++|
| |UnrealEditor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1622|C++|
| |UnrealEditor-SlateCore.dll!SPanel::PaintArrangedChildren(const FPaintArgs & Args, const FArrangedChildren & ArrangedChildren, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 31|C++|
| |UnrealEditor-SlateCore.dll!SPanel::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 12|C++|
| |UnrealEditor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1622|C++|
| |UnrealEditor-SlateCore.dll!SCompoundWidget::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 46|C++|
| |UnrealEditor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1622|C++|
| |UnrealEditor-SlateCore.dll!SPanel::PaintArrangedChildren(const FPaintArgs & Args, const FArrangedChildren & ArrangedChildren, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 31|C++|
| |UnrealEditor-Slate.dll!SSplitter::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 253|C++|
| |UnrealEditor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1622|C++|
| |UnrealEditor-SlateCore.dll!SOverlay::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 207|C++|
| |UnrealEditor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1622|C++|
| |UnrealEditor-SlateCore.dll!SPanel::PaintArrangedChildren(const FPaintArgs & Args, const FArrangedChildren & ArrangedChildren, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 31|C++|
| |UnrealEditor-SlateCore.dll!SPanel::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 12|C++|
| |UnrealEditor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1622|C++|
| |UnrealEditor-SlateCore.dll!SOverlay::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 207|C++|
| |UnrealEditor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1622|C++|
| |UnrealEditor-SlateCore.dll!SCompoundWidget::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 46|C++|
| |UnrealEditor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1622|C++|
| |UnrealEditor-SlateCore.dll!SPanel::PaintArrangedChildren(const FPaintArgs & Args, const FArrangedChildren & ArrangedChildren, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 31|C++|
| |UnrealEditor-SlateCore.dll!SPanel::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 12|C++|
| |UnrealEditor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1622|C++|
| |UnrealEditor-SlateCore.dll!SPanel::PaintArrangedChildren(const FPaintArgs & Args, const FArrangedChildren & ArrangedChildren, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 31|C++|
| |UnrealEditor-SlateCore.dll!SPanel::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 12|C++|
| |UnrealEditor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1622|C++|
| |UnrealEditor-SlateCore.dll!SOverlay::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 207|C++|
| |UnrealEditor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1622|C++|
| |UnrealEditor-SlateCore.dll!SCompoundWidget::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 46|C++|
| |UnrealEditor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1622|C++|
| |UnrealEditor-SlateCore.dll!SWindow::PaintSlowPath(const FSlateInvalidationContext & Context) Line 2076|C++|
| |UnrealEditor-SlateCore.dll!FSlateInvalidationRoot::PaintInvalidationRoot(const FSlateInvalidationContext & Context) Line 405|C++|
| |UnrealEditor-SlateCore.dll!SWindow::PaintWindow(double CurrentTime, float DeltaTime, FSlateWindowElementList & OutDrawElements, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 2110|C++|
| |UnrealEditor-Slate.dll!FSlateApplication::DrawWindowAndChildren(const TSharedRef<SWindow,1> & WindowToDraw, FDrawWindowArgs & DrawWindowArgs) Line 1159|C++|
| |UnrealEditor-Slate.dll!FSlateApplication::DrawWindowAndChildren(const TSharedRef<SWindow,1> & WindowToDraw, FDrawWindowArgs & DrawWindowArgs) Line 1211|C++|
| |UnrealEditor-Slate.dll!FSlateApplication::PrivateDrawWindows(TSharedPtr<SWindow,1> DrawOnlyThisWindow) Line 1395|C++|
| |UnrealEditor-Slate.dll!FSlateApplication::DrawWindows() Line 1103|C++|
| |UnrealEditor-Slate.dll!FSlateApplication::TickAndDrawWidgets(float DeltaTime) Line 1693|C++|
| |UnrealEditor-Slate.dll!FSlateApplication::Tick(ESlateTickType TickType) Line 1549|C++|
| |UnrealEditor.exe!FEngineLoop::Tick() Line 6029|C++|
| |[Inline Frame] UnrealEditor.exe!EngineTick() Line 61|C++|
| |UnrealEditor.exe!GuardedMain(const wchar_t * CmdLine) Line 180|C++|
| |UnrealEditor.exe!GuardedMainWrapper(const wchar_t * CmdLine) Line 118|C++|
| |UnrealEditor.exe!LaunchWindowsStartup(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow, const wchar_t * CmdLine) Line 258|C++|
| |UnrealEditor.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * pCmdLine, int nCmdShow) Line 298|C++|

Custom schema:

// H
// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "Components/StateTreeComponentSchema.h"
#include "CourageStateTreeRunTaskSchema.generated.h"

class UCourageStateTreeResourceBase;

/**
 * 
 */
UCLASS(BlueprintType, EditInlineNew, CollapseCategories, meta = (DisplayName = "Courage State Tree Run Task Schema"))
class COURAGE_AI_API UCourageStateTreeRunTaskSchema : public UStateTreeSchema
{
	GENERATED_BODY()

public:
	UCourageStateTreeRunTaskSchema();

	UClass* GetContextActorClass() const { return ContextActorClass; };

protected:
	virtual bool IsStructAllowed(const UScriptStruct* InScriptStruct) const override;
	virtual bool IsClassAllowed(const UClass* InScriptStruct) const override;
	virtual bool IsExternalItemAllowed(const UStruct& InStruct) const override;

	virtual TConstArrayView<FStateTreeExternalDataDesc> GetContextDataDescs() const override;

	virtual void PostLoad() override;

#if WITH_EDITOR
	virtual void PostEditChangeChainProperty(FPropertyChangedChainEvent& PropertyChangedEvent) override;

	void ResizeContextDataDescs();
#endif

	/** Actor class the StateTree is expected to run on. Allows to bind to specific Actor class' properties. */
	UPROPERTY(EditAnywhere, Category = "Courage")
	TSubclassOf<AActor> ContextActorClass;

	/** Actor class the StateTree is expected to run on. Allows to bind to specific Actor class' properties. */
	UPROPERTY(EditAnywhere, Category = "Courage")
	TArray<TSubclassOf<UActorComponent>> ContextComponentClasses;

	UPROPERTY()
	TArray<FGuid> ContextComponentGuids;

	/** Actor class the StateTree is expected to run on. Allows to bind to specific Actor class' properties. */
	UPROPERTY(EditAnywhere, Category = "Courage")
	TArray<TSubclassOf<UObject>> ContextObjectClasses;

	UPROPERTY()
	TArray<FGuid> ContextObjectGuids;

	UPROPERTY()
	TArray<FStateTreeExternalDataDesc> ContextDataDescs;

};


// CPP

#include "Courage/AI/StateTree/CourageStateTreeRunTaskSchema.h"

#include "Courage/AI/StateTree/CourageStateTree.h"

#include "StateTreeSchema.h"
#include "GameFramework/Actor.h"
#include "StateTreeExecutionTypes.h"

#include "Components/StateTreeComponentSchema.h"
#include "StateTreeConditionBase.h"
#include "StateTreeEvaluatorBase.h"
#include "StateTreeTaskBase.h"
#include "Subsystems/WorldSubsystem.h"

UCourageStateTreeRunTaskSchema::UCourageStateTreeRunTaskSchema()
	: ContextActorClass(AActor::StaticClass())
	//, ContextComponentClasses({ UActorComponent::StaticClass() })
	, ContextDataDescs(
		{
			{ FName("Actor"), AActor::StaticClass(), FGuid(0x1D971B00, 0x28884FDE, 0xB5436802, 0x36984FD5) }
			//{ FName("Component1"), UActorComponent::StaticClass(), FGuid(0x1D971B00, 0x28884FDE, 0xB5436802, 0x36984FD6) },
			//{ FName("Resource1"), UActorComponent::StaticClass(), FGuid(0x1D971B00, 0x28884FDE, 0xB5436802, 0x36984FD7) }
		})
{
}

bool UCourageStateTreeRunTaskSchema::IsStructAllowed(const UScriptStruct* InScriptStruct) const
{
	return InScriptStruct->IsChildOf(FStateTreeConditionCommonBase::StaticStruct())
		|| InScriptStruct->IsChildOf(FStateTreeEvaluatorCommonBase::StaticStruct())
		|| InScriptStruct->IsChildOf(FStateTreeTaskCommonBase::StaticStruct())
		//|| InScriptStruct->IsChildOf(UCourageStateTreeResourceBase::StaticStruct())
		;
}

bool UCourageStateTreeRunTaskSchema::IsClassAllowed(const UClass* InClass) const
{
	return IsChildOfBlueprintBase(InClass);
}

bool UCourageStateTreeRunTaskSchema::IsExternalItemAllowed(const UStruct& InStruct) const
{
	return InStruct.IsChildOf(AActor::StaticClass())
		|| InStruct.IsChildOf(UActorComponent::StaticClass())
		|| InStruct.IsChildOf(UWorldSubsystem::StaticClass()) 
		|| InStruct.IsChildOf(UObject::StaticClass())
		;
}


TConstArrayView<FStateTreeExternalDataDesc> UCourageStateTreeRunTaskSchema::GetContextDataDescs() const
{
	return ContextDataDescs;
}

void UCourageStateTreeRunTaskSchema::ResizeContextDataDescs()
{
	int32 NumComponents = ContextComponentClasses.Num();
	int32 NumObjects = ContextObjectClasses.Num();

	ContextComponentGuids.SetNum(NumComponents);
	for (int32 i = 0; i < NumComponents; i++)
	{
		if (!ContextComponentGuids[i].IsValid())
			ContextComponentGuids[i] = FGuid::NewGuid();
	}

	ContextObjectGuids.SetNum(NumObjects);
	for (int32 i = 0; i < NumObjects; i++)
	{
		if (!ContextObjectGuids[i].IsValid())
			ContextObjectGuids[i] = FGuid::NewGuid();
	}

	if (ContextDataDescs.Num() != 1 + NumComponents + NumObjects)
		ContextDataDescs.SetNum(1 + NumComponents + NumObjects);	
	int32 NumDescs = ContextDataDescs.Num();
	for (int32 i = 1; i < NumDescs; i++)
	{
		if (NumComponents && (i < 1 + NumComponents))
		{
			ContextDataDescs[i].ID = ContextComponentGuids[i - 1];
			ContextDataDescs[i].Name = FName("Component" + FString::FromInt(i));
			ContextDataDescs[i].Struct = ContextComponentClasses[i - 1].Get();
		}
		else if (NumObjects && (i < 1 + NumComponents + NumObjects))
		{
			ContextDataDescs[i].ID = ContextObjectGuids[i - NumComponents - 1];
			ContextDataDescs[i].Name = FName("Object" + FString::FromInt(i - NumComponents));
			ContextDataDescs[i].Struct = ContextObjectClasses[i - NumComponents - 1].Get();
		}
	}
}

void UCourageStateTreeRunTaskSchema::PostEditChangeChainProperty(FPropertyChangedChainEvent& PropertyChangedEvent)
{
	Super::PostEditChangeChainProperty(PropertyChangedEvent);

	FProperty* Property = PropertyChangedEvent.Property;

	if (Property)
	{
		int32 NumComponents = ContextComponentClasses.Num();
		int32 NumObjects = ContextObjectClasses.Num();
		int32 NumDescs = ContextDataDescs.Num();

		if (
			Property->GetOwnerClass() == UCourageStateTreeRunTaskSchema::StaticClass() &&
			Property->GetFName() == GET_MEMBER_NAME_CHECKED(UCourageStateTreeRunTaskSchema, ContextActorClass))
		{
			ResizeContextDataDescs();
		}

		if (
			Property->GetOwnerClass() == UCourageStateTreeRunTaskSchema::StaticClass() &&
			Property->GetFName() == GET_MEMBER_NAME_CHECKED(UCourageStateTreeRunTaskSchema, ContextComponentClasses))
		{			
			ResizeContextDataDescs();
		}

		if (
			Property->GetOwnerClass() == UCourageStateTreeRunTaskSchema::StaticClass() &&
			Property->GetFName() == GET_MEMBER_NAME_CHECKED(UCourageStateTreeRunTaskSchema, ContextObjectClasses))
		{
			ResizeContextDataDescs();
		}
	}
}

void UCourageStateTreeRunTaskSchema::PostLoad()
{
	Super::PostLoad();

	ContextDataDescs[0].Struct = ContextActorClass.Get();

	ResizeContextDataDescs();
}

This is frustrating because as it stands only programmers can use state trees using the workaround.

Can someone have a look at this?