In 4.15 all works fine.
Steps to reproduce:
*1. Create in any Actor property like this:
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "PostProcess", meta = (UIMin = "0.0", UIMax = "2.0", Delta = "0.01", ColorGradingMode = "saturation", ShiftMouseMovePixelPerDelta = "10"))
FVector4 colorSaturation;
*2. Run in Editor Mode and select this Actor.
*3. Got error in FColorGradingVectorCustomization::CustomizeChildren (line 637):
TSharedPtr PropertyRow = ParentGroup->FindPropertyRow(ColorGradingPropertyHandle.Pin().ToSharedRef());
(ParentGroup was nullptr)
*4. Call stack
UE4Editor-DetailCustomizations.dll!FColorGradingVectorCustomization::CustomizeChildren(IDetailChildrenBuilder & StructBuilder, IPropertyTypeCustomizationUtils & StructCustomizationUtils) Line 637 C++
UE4Editor-DetailCustomizations.dll!FVector4StructCustomization::CustomizeChildren(TSharedRef<IPropertyHandle,0> StructPropertyHandle, IDetailChildrenBuilder & StructBuilder, IPropertyTypeCustomizationUtils & StructCustomizationUtils) Line 40 C++
UE4Editor-PropertyEditor.dll!FDetailPropertyRow::OnItemNodeInitialized(TSharedRef<FDetailCategoryImpl,0> InParentCategory, const TAttribute & InIsParentEnabled, TSharedPtr<IDetailGroup,0> InParentGroup) Line 218 C++
UE4Editor-PropertyEditor.dll!FDetailItemNode::InitPropertyEditor() Line 94 C++
UE4Editor-PropertyEditor.dll!FDetailItemNode::Initialize() Line 42 C++
UE4Editor-PropertyEditor.dll!FDetailCategoryImpl::GenerateNodesFromCustomizations(const TArray<FDetailLayoutCustomization,FDefaultAllocator> & InCustomizationList, bool bDefaultLayouts, TArray<TSharedRef<IDetailTreeNode,0>,FDefaultAllocator> & OutNodeList, bool & bOutLastItemHasMultipleColumns) Line 663 C++
UE4Editor-PropertyEditor.dll!FDetailCategoryImpl::GenerateChildrenForSingleLayout(const FName RequiredGroupName, bool bDefaultLayout, bool bNeedsGroup, const TArray<FDetailLayoutCustomization,FDefaultAllocator> & LayoutList, TArray<TSharedRef<IDetailTreeNode,0>,FDefaultAllocator> & OutChildren, bool & bOutLastItemHasMultipleColumns) Line 685 C++
UE4Editor-PropertyEditor.dll!FDetailCategoryImpl::GenerateChildrenForLayouts() Line 723 C++
UE4Editor-PropertyEditor.dll!FDetailCategoryImpl::GenerateLayout() Line 869 C++
UE4Editor-PropertyEditor.dll!FDetailLayoutBuilderImpl::BuildCategories(const TMap<FName,TSharedPtr<FDetailCategoryImpl,0>,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<FName,TSharedPtr<FDetailCategoryImpl,0>,0> > & CategoryMap, TArray<TSharedRef<FDetailCategoryImpl,0>,FDefaultAllocator> & OutSimpleCategories, TArray<TSharedRef<FDetailCategoryImpl,0>,FDefaultAllocator> & OutAdvancedCategories) Line 154 C++
UE4Editor-PropertyEditor.dll!FDetailLayoutBuilderImpl::GenerateDetailLayout() Line 196 C++
UE4Editor-PropertyEditor.dll!SDetailsViewBase::UpdateSinglePropertyMap(TSharedPtr<FComplexPropertyNode,0> & InRootPropertyNode, FDetailLayoutData & LayoutData) Line 408 C++
UE4Editor-PropertyEditor.dll!SDetailsViewBase::UpdatePropertyMaps() Line 373 C++
UE4Editor-PropertyEditor.dll!SDetailsView::PostSetObject() Line 838 C++
UE4Editor-PropertyEditor.dll!SDetailsView::SetObjectArrayPrivate(const TArray<TWeakObjectPtr<UObject,FWeakObjectPtr>,FDefaultAllocator> & InObjects) Line 600 C++
UE4Editor-PropertyEditor.dll!SDetailsView::SetObjects(const TArray<UObject *,FDefaultAllocator> & InObjects, bool bForceRefresh, bool bOverrideLock) Line 349 C++
UE4Editor-LevelEditor.dll!SActorDetails::SetObjects(const TArray<UObject *,FDefaultAllocator> & InObjects, bool bForceRefresh) Line 224 C++
UE4Editor-LevelEditor.dll!SLevelEditor::OnActorSelectionChanged(const TArray<UObject ,FDefaultAllocator> & NewSelection, bool bForceRefresh) Line 1489 C++
[Inline Frame] UE4Editor-LevelEditor.dll!TMemberFunctionCaller<SLevelEditor,void (__cdecl SLevelEditor::)(TArray<UObject *,FDefaultAllocator> const &,bool)>::operator()(const TArray<UObject ,FDefaultAllocator> &) Line 165 C++
[Inline Frame] UE4Editor-LevelEditor.dll!UE4Tuple_Private::TTupleImpl<TIntegerSequence >::ApplyAfter(TMemberFunctionCaller<SLevelEditor,void (__cdecl SLevelEditor::)(TArray<UObject *,FDefaultAllocator> const &,bool)> &&) Line 497 C++
UE4Editor-LevelEditor.dll!TBaseSPMethodDelegateInstance<0,SLevelEditor,0,TTypeWrapper __cdecl(TArray<UObject * __ptr64,FDefaultAllocator> const & __ptr64,bool)>::Execute(const TArray<UObject *,FDefaultAllocator> & <Params_0>, bool <Params_1>) Line 327 C++
UE4Editor-LevelEditor.dll!TBaseSPMethodDelegateInstance<0,SLevelEditor,0,void __cdecl(TArray<UObject * __ptr64,FDefaultAllocator> const & __ptr64,bool)>::ExecuteIfSafe(const TArray<UObject *,FDefaultAllocator> & <Params_0>, bool <Params_1>) Line 434 C++
UE4Editor-LevelEditor.dll!TBaseMulticastDelegate<void,TArray<UObject * __ptr64,FDefaultAllocator> const & __ptr64,bool>::Broadcast(const TArray<UObject *,FDefaultAllocator> & <Params_0>, bool <Params_1>) Line 937 C++
UE4Editor-UnrealEd.dll!UUnrealEdEngine::UpdateFloatingPropertyWindowsFromActorList(const TArray<UObject *,FDefaultAllocator> & ActorList, bool bForceRefresh) Line 70 C++
UE4Editor-UnrealEd.dll!UUnrealEdEngine::UpdateFloatingPropertyWindows(bool bForceRefresh) Line 61 C++
UE4Editor-UnrealEd.dll!UUnrealEdEngine::NoteSelectionChange() Line 418 C++
UE4Editor-UnrealEd.dll!UUnrealEdEngine::SelectActor(AActor * Actor, bool bInSelected, bool bNotify, bool bSelectEvenIfHidden, bool bForceRefresh) Line 648 C++
UE4Editor-UnrealEd.dll!ClickHandlers::ClickActor(FLevelEditorViewportClient * ViewportClient, AActor * Actor, const FViewportClick & Click, bool bAllowSelectionChange) Line 278 C++
UE4Editor-UnrealEd.dll!FLevelEditorViewportClient::ProcessClick(FSceneView & View, HHitProxy * HitProxy, FKey Key, EInputEvent Event, unsigned int HitX, unsigned int HitY) Line 1965 C++
UE4Editor-UnrealEd.dll!FEditorViewportClient::ProcessClickInViewport(const FInputEventState & InputState, FSceneView & View) Line 2619 C++
UE4Editor-UnrealEd.dll!FEditorViewportClient::InputKey(FViewport * InViewport, int ControllerId, FKey Key, EInputEvent Event, float __formal, bool __formal) Line 2381 C++
UE4Editor-UnrealEd.dll!FLevelEditorViewportClient::InputKey(FViewport * InViewport, int ControllerId, FKey Key, EInputEvent Event, float AmountDepressed, bool bGamepad) Line 2510 C++
UE4Editor-Engine.dll!FSceneViewport::OnMouseButtonUp(const FGeometry & InGeometry, const FPointerEvent & InMouseEvent) Line 575 C++
UE4Editor-Slate.dll!SViewport::OnMouseButtonUp(const FGeometry & MyGeometry, const FPointerEvent & MouseEvent) Line 200 C++
UE4Editor-Slate.dll!FSlateApplication::RoutePointerUpEvent::__l8::(const FArrangedWidget & TargetWidget, const FPointerEvent & Event) Line 5049 C++
UE4Editor-Slate.dll!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,FReply (const FArrangedWidget &, const FPointerEvent &) >(FSlateApplication * ThisApplication, FEventRouter::FToLeafmostPolicy RoutingPolicy, FPointerEvent EventCopy, const FSlateApplication::RoutePointerUpEvent::l8::FReply (const FArrangedWidget &, const FPointerEvent &) & Lambda) Line 239 C++
UE4Editor-Slate.dll!FSlateApplication::RoutePointerUpEvent(FWidgetPath & WidgetsUnderPointer, FPointerEvent & PointerEvent) Line 5038 C++
UE4Editor-Slate.dll!FSlateApplication::ProcessMouseButtonUpEvent(FPointerEvent & MouseEvent) Line 5515 C++
UE4Editor-Slate.dll!FSlateApplication::OnMouseUp(const EMouseButtons::Type Button, const FVector2D CursorPos) Line 5495 C++
UE4Editor-Core.dll!FWindowsApplication::ProcessDeferredMessage(const FDeferredWindowsMessage & DeferredMessage) Line 1704 C++
UE4Editor-Core.dll!FWindowsApplication::DeferMessage(TSharedPtr<FWindowsWindow,0> & NativeWindow, HWND * InHWnd, unsigned int InMessage, unsigned int64 InWParam, int64 InLParam, int MouseX, int MouseY, unsigned int RawInputFlags) Line 2127 C++
UE4Editor-Core.dll!FWindowsApplication::ProcessMessage(HWND * hwnd, unsigned int msg, unsigned int64 wParam, int64 lParam) Line 867 C++
UE4Editor-Core.dll!FWindowsApplication::AppWndProc(HWND * hwnd, unsigned int msg, unsigned int64 wParam, int64 lParam) Line 714 C++
[External Code]
[Inline Frame] UE4Editor-Core.dll!WinPumpMessages() Line 986 C++
UE4Editor-Core.dll!FWindowsPlatformMisc::PumpMessages(bool bFromMainLoop) Line 1009 C++
UE4Editor.exe!FEngineLoop::Tick() Line 3058 C++
[Inline Frame] UE4Editor.exe!EngineTick() C++
UE4Editor.exe!GuardedMain(const wchar_t * CmdLine, HINSTANCE * hInInstance, HINSTANCE * hPrevInstance, int nCmdShow) Line 166 C++
UE4Editor.exe!WinMain(HINSTANCE * hInInstance, HINSTANCE * hPrevInstance, char * __formal, int nCmdShow) Line 199 C++
[External Code]
This variant work well:
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "PostProcess", meta = (UIMin = "0.0", UIMax = "2.0", Delta = "0.01"))
FVector4 colorSaturation;
Image with crash place: