DetailLayout.EditDefaultProperty(MemberPropertyHandle)->CustomWidget() Return null and crashes engine

Hello I have this piece of code editing existing property. I have a lot of checks but DetailLayout.EditDefaultProperty(MemberPropertyHandle)->CustomWidget() crashes the engine on ACCESS VIOLATION

TSharedPtr<IPropertyHandle> SunSettingsStruct = DetailLayout.GetProperty(GET_MEMBER_NAME_CHECKED(AEFPLightningSystem, SunSettings));
	if (SunSettingsStruct.IsValid())
	{
		TSharedPtr<IPropertyHandle> MemberPropertyHandle = SunSettingsStruct->GetChildHandle(TEXT("bUseLightShaftOcclusion"));
		if (MemberPropertyHandle.IsValid())
		{
			// Log the property name to verify its correct
			UE_LOG(EFLIGHTUI, Warning, TEXT("Property Name: %s"), *MemberPropertyHandle->GetProperty()->GetName());
			
			if (MemberPropertyHandle->IsEditable())
			{
				UE_LOG(EFLIGHTUI, Warning, TEXT("bUseLightShaftOcclusion is Editable"));

				DetailLayout.EditDefaultProperty(MemberPropertyHandle)->CustomWidget()
				.NameContent()
				[
					MemberPropertyHandle->CreatePropertyNameWidget()
				]
				.ValueContent()
				[
					MemberPropertyHandle->CreatePropertyValueWidget()
				];
			}
			else
			{
				UE_LOG(EFLIGHTUI, Warning, TEXT("bUseLightShaftOcclusion is not Editable"));
			}
		}
	}