When duplicating a Generator inside an Environment Query, the action triggers an ensure and stalls the Editor for a few moments.
This issue was reported and tested in 4.19.2 (CL-4033788). It was reproduced in 4.20.1 (CL-4233996) and 4.21 (CL-4255699).
Results: The action completes but there it hits an ensure
Expected: The action completes with no warnings or errors
[2018.08.01-23.26.55:066][964]LogAIGraph: Error: [2018.08.01-23.26.55:066][964]LogOutputDevice: Error: Ensure condition failed: CurrentTransaction [File:d:\dfp-mutant\Common\UE4\Engine\Source\Editor\UnrealEd\Private\EditorTransaction.cpp] [Line: 1014] > UE4Editor-UnrealEd.dll!UTransBuffer::IsObjectTransacting(const UObject * Object) Line 1014 C++ UE4Editor-Engine.dll!UEdGraphPin::ResolveReferencesToPin(UEdGraphPin * Pin, bool bStrictValidation) Line 1725 C++ UE4Editor-Engine.dll!UEdGraphPin::Serialize(FArchive & Ar) Line 1669 C++ UE4Editor-Engine.dll!UEdGraphPin::SerializePin(FArchive & Ar, UEdGraphPin * & PinRef, int ArrayIdx, UEdGraphPin * RequestingPin, EPinResolveType ResolveType, TArray<UEdGraphPin *,FDefaultAllocator> & OldPins) Line 1961 C++ UE4Editor-Engine.dll!UEdGraphPin::SerializePinArray(FArchive & Ar, TArray<UEdGraphPin *,FDefaultAllocator> & ArrayRef, UEdGraphPin * RequestingPin, EPinResolveType ResolveType) Line 1786 C++ UE4Editor-Engine.dll!UEdGraphNode::Serialize(FArchive & Ar) Line 498 C++ UE4Editor-CoreUObject.dll!StaticDuplicateObjectEx(FObjectDuplicationParameters & Parameters) Line 2070 C++ UE4Editor-CoreUObject.dll!StaticDuplicateObject(const UObject * SourceObject, UObject * DestOuter, const FName DestName, EObjectFlags FlagMask, UClass * DestClass, EDuplicateMode::Type DuplicateMode, EInternalObjectFlags InternalFlagsMask) Line 1960 C++ UE4Editor-AIModule.dll!UEnvQueryManager::CreateQueryInstance(const UEnvQuery * Template, EEnvQueryRunMode::Type RunMode) Line 676 C++ UE4Editor-AIModule.dll!UEnvQueryManager::PrepareQueryInstance(const FEnvQueryRequest & Request, EEnvQueryRunMode::Type RunMode) Line 275 C++ UE4Editor-AIModule.dll!AEQSTestingPawn::MakeOneStep() Line 250 C++ UE4Editor-AIModule.dll!UEnvQueryManager::NotifyAssetUpdate(UEnvQuery * Query) Line 183 C++ UE4Editor-AIModule.dll!UEnvQueryTest::PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) Line 332 C++ UE4Editor-CoreUObject.dll!UObject::PostEditChange() Line 333 C++ UE4Editor-UnrealEd.dll!ImportObjectProperties(FImportObjectParams & InParams) Line 740 C++ UE4Editor-UnrealEd.dll!ImportObjectProperties(unsigned char * DestData, const wchar_t * SourceText, UStruct * ObjectStruct, UObject * SubobjectRoot, UObject * SubobjectOuter, FFeedbackContext * Warn, int Depth, int LineNumber, FObjectInstancingGraph * InInstanceGraph, const TMap<AActor *,AActor *,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<AActor *,AActor *,0> > * ActorRemapper) Line 815 C++ UE4Editor-UnrealEd.dll!ImportProperties(unsigned char * DestData, const wchar_t * SourceText, UStruct * ObjectStruct, UObject * SubobjectRoot, UObject * SubobjectOuter, FFeedbackContext * Warn, int Depth, FObjectInstancingGraph & InstanceGraph, const TMap<AActor *,AActor *,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<AActor *,AActor *,0> > * ActorRemapper) Line 589 C++ UE4Editor-UnrealEd.dll!ImportObjectProperties(FImportObjectParams & InParams) Line 707 C++ UE4Editor-UnrealEd.dll!ImportObjectProperties(unsigned char * DestData, const wchar_t * SourceText, UStruct * ObjectStruct, UObject * SubobjectRoot, UObject * SubobjectOuter, FFeedbackContext * Warn, int Depth, int LineNumber, FObjectInstancingGraph * InInstanceGraph, const TMap<AActor *,AActor *,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<AActor *,AActor *,0> > * ActorRemapper) Line 815 C++ UE4Editor-UnrealEd.dll!FCustomizableTextObjectFactory::ProcessBuffer(UObject * InParent, EObjectFlags Flags, const wchar_t * Buffer) Line 4834 C++ UE4Editor-UnrealEd.dll!FEdGraphUtilities::ImportNodesFromText(UEdGraph * DestinationGraph, const FString & TextToImport, TSet<UEdGraphNode *,DefaultKeyFuncs<UEdGraphNode *,0>,FDefaultSetAllocator> & ImportedNodeSet) Line 382 C++ UE4Editor-AIGraph.dll!FAIGraphEditor::PasteNodesHere(const FVector2D & Location) Line 366 C++ UE4Editor-AIGraph.dll!FAIGraphEditor::PasteNodes() Line 308 C++ UE4Editor-AIGraph.dll!TBaseRawMethodDelegateInstance<0,FAIGraphEditor,void __cdecl(void)>::ExecuteIfSafe() Line 503 C++ UE4Editor-Slate.dll!FUICommandList::ExecuteAction(const TSharedRef<FUICommandInfo const ,0> InUICommandInfo) Line 97 C++ UE4Editor-Slate.dll!SMenuEntryBlock::OnClicked(bool bCheckBoxClicked) Line 1028 C++ UE4Editor-Slate.dll!SMenuEntryBlock::OnMenuItemButtonClicked() Line 988 C++ UE4Editor-Slate.dll!TMemberFunctionCaller<SMenuEntryBlock,FReply (__cdecl SMenuEntryBlock::*)(void) __ptr64>::operator()<>() Line 156 C++ UE4Editor-Slate.dll!UE4Tuple_Private::TTupleImpl<TIntegerSequence<unsigned int> >::ApplyAfter<TMemberFunctionCaller<SMenuEntryBlock,FReply (__cdecl SMenuEntryBlock::*)(void) __ptr64> >(TMemberFunctionCaller<SMenuEntryBlock,FReply (__cdecl SMenuEntryBlock::*)(void)> && Func) Line 498 C++ UE4Editor-Slate.dll!TBaseSPMethodDelegateInstance<0,SMenuEntryBlock,0,FReply __cdecl(void)>::Execute() Line 269 C++ UE4Editor-Slate.dll!TBaseDelegate<FReply>::Execute() Line 537 C++ UE4Editor-Slate.dll!SButton::OnMouseButtonUp(const FGeometry & MyGeometry, const FPointerEvent & MouseEvent) Line 282 C++ UE4Editor-Slate.dll!SMenuEntryButton::OnMouseButtonUp(const FGeometry & MyGeometry, const FPointerEvent & MouseEvent) Line 385 C++ UE4Editor-Slate.dll!FSlateApplication::RoutePointerUpEvent::__l8::<lambda>(const FArrangedWidget & TargetWidget, const FPointerEvent & Event) Line 5440 C++ UE4Editor-Slate.dll!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,FReply <lambda>(const FArrangedWidget &, const FPointerEvent &) >(FSlateApplication * ThisApplication, FEventRouter::FToLeafmostPolicy RoutingPolicy, FPointerEvent EventCopy, const FSlateApplication::RoutePointerUpEvent::__l8::FReply <lambda>(const FArrangedWidget &, const FPointerEvent &) & Lambda) Line 266 C++ UE4Editor-Slate.dll!FSlateApplication::RoutePointerUpEvent(FWidgetPath & WidgetsUnderPointer, FPointerEvent & PointerEvent) Line 5429 C++ UE4Editor-Slate.dll!FSlateApplication::ProcessMouseButtonUpEvent(FPointerEvent & MouseEvent) Line 5929 C++ UE4Editor-Slate.dll!FSlateApplication::OnMouseUp(const EMouseButtons::Type Button, const FVector2D CursorPos) Line 5909 C++ UE4Editor-ApplicationCore.dll!FWindowsApplication::ProcessDeferredMessage(const FDeferredWindowsMessage & DeferredMessage) Line 1726 C++ UE4Editor-ApplicationCore.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 2172 C++ UE4Editor-ApplicationCore.dll!FWindowsApplication::ProcessMessage(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 889 C++ UE4Editor-ApplicationCore.dll!FWindowsApplication::AppWndProc(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 726 C++ [External Code] UE4Editor-ApplicationCore.dll!FWindowsPlatformApplicationMisc::PumpMessages(bool bFromMainLoop) Line 129 C++ UE4Editor.exe!FEngineLoop::Tick() Line 3263 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 209 C++ [External Code]
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-62481 in the post.