Description

When attempting to diff a Blueprint that has been reparented when the previous parent no longer exists in the editor, a crash occurs. The crash is due to the editor attempting to reference the deleted asset for the previous revision in the diff. Even if this is not expected to work and the previous revision does not show the correct information, the editor should be able to handle this without a crash

Regression?: No
This also occurs in 4.16

Steps to Reproduce
  1. Create a new project, place it into a Perforce depot, and enable Source Control in the editor
  2. Create a Blueprint based off of actor (FirstBP)
  3. Create a child Blueprint of FirstBP (SecondBP)
  4. Create a child blueprint of SecondBP (ThirdBP)
  5. Check all of these blueprints out, save, and then submit the changes.
  6. Check out ThirdBP, reparent it to FirstBP and then save it
  7. Delete SecondBP (there should be no warnings of it being referenced, if things have been done correctly)
  8. In ThirdBP, select File > Diff > Depot
    Result: The editor crashes as it is attempting to access SecondBP, which no longer exists, to show the previous version that you are diffing against.
    Expected: The editor handles the exception and does not crash, bringing up the Diff window.
Callstack
[2017.09.20-14.06.51:848][441]LogWindows:Error: === Critical error: ===
[2017.09.20-14.06.51:848][441]LogWindows:Error: 
[2017.09.20-14.06.51:848][441]LogWindows:Error: Assertion failed: OldSelectedObjects.Num() == 1 [File:D:\Build\++UE4+Release-4.16+Compile\Sync\Engine\Source\Editor\Kismet\Private\DetailsDiff.cpp] [Line: 75] 
[2017.09.20-14.06.51:848][441]LogWindows:Error: 
[2017.09.20-14.06.51:848][441]LogWindows:Error: 
[2017.09.20-14.06.51:848][441]LogWindows:Error: 
[2017.09.20-14.06.51:848][441]LogWindows:Error: KERNELBASE.dll!0x00000000FCCCA06D
[2017.09.20-14.06.51:848][441]LogWindows:Error: UE4Editor-Core.dll!FOutputDeviceWindowsError::Serialize() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\private\windows\windowsplatformoutputdevices.cpp:120]
[2017.09.20-14.06.51:848][441]LogWindows:Error: UE4Editor-Core.dll!FOutputDevice::Logf__VA() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\private\misc\outputdevice.cpp:70]
[2017.09.20-14.06.51:848][441]LogWindows:Error: UE4Editor-Core.dll!FDebug::AssertFailed() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:349]
[2017.09.20-14.06.51:848][441]LogWindows:Error: UE4Editor-Kismet.dll!FDetailsDiff::DiffAgainst() [d:\build\++ue4+release-4.16+compile\sync\engine\source\editor\kismet\private\detailsdiff.cpp:77]
[2017.09.20-14.06.51:848][441]LogWindows:Error: UE4Editor-Kismet.dll!FCDODiffControl::FCDODiffControl() [d:\build\++ue4+release-4.16+compile\sync\engine\source\editor\kismet\private\sblueprintdiff.cpp:176]
[2017.09.20-14.06.51:848][441]LogWindows:Error: UE4Editor-Kismet.dll!SBlueprintDiff::GenerateDefaultsPanel() [d:\build\++ue4+release-4.16+compile\sync\engine\source\editor\kismet\private\sblueprintdiff.cpp:1361]
[2017.09.20-14.06.51:848][441]LogWindows:Error: UE4Editor-Kismet.dll!SBlueprintDiff::GenerateDifferencesList() [d:\build\++ue4+release-4.16+compile\sync\engine\source\editor\kismet\private\sblueprintdiff.cpp:1241]
[2017.09.20-14.06.51:848][441]LogWindows:Error: UE4Editor-Kismet.dll!SBlueprintDiff::Construct() [d:\build\++ue4+release-4.16+compile\sync\engine\source\editor\kismet\private\sblueprintdiff.cpp:736]
[2017.09.20-14.06.51:848][441]LogWindows:Error: UE4Editor-AssetTools.dll!TDecl<SBlueprintDiff,RequiredArgs::T0RequiredArgs>::operator<<=() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\slatecore\public\widgets\declarativesyntaxsupport.h:1087]
[2017.09.20-14.06.51:848][441]LogWindows:Error: UE4Editor-AssetTools.dll!FAssetTypeActions_Blueprint::PerformAssetDiff() [d:\build\++ue4+release-4.16+compile\sync\engine\source\developer\assettools\private\assettypeactions\assettypeactions_blueprint.cpp:257]
[2017.09.20-14.06.51:848][441]LogWindows:Error: UE4Editor-AssetTools.dll!FAssetTools::DiffAssets() [d:\build\++ue4+release-4.16+compile\sync\engine\source\developer\assettools\private\assettools.cpp:924]
[2017.09.20-14.06.51:848][441]LogWindows:Error: UE4Editor-Kismet.dll!OnDiffRevisionPicked() [d:\build\++ue4+release-4.16+compile\sync\engine\source\editor\kismet\private\sblueprinteditortoolbar.cpp:296]
[2017.09.20-14.06.51:849][441]LogWindows:Error: UE4Editor-Kismet.dll!TBaseStaticDelegateInstance<void __cdecl(FRevisionInfo const & __ptr64),TWeakObjectPtr<UBlueprint,FWeakObjectPtr> >::ExecuteIfSafe() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:1027]
[2017.09.20-14.06.51:849][441]LogWindows:Error: UE4Editor-Kismet.dll!TBaseFunctorDelegateInstance<void __cdecl(void),<lambda_c1d271c5b435248e424ac1f4c6a212b6> >::ExecuteIfSafe() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:1199]
[2017.09.20-14.06.51:849][441]LogWindows:Error: UE4Editor-Slate.dll!SMenuEntryBlock::OnClicked() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\slate\private\framework\multibox\smenuentryblock.cpp:1051]
[2017.09.20-14.06.51:849][441]LogWindows:Error: UE4Editor-Slate.dll!SMenuEntryBlock::OnMenuItemButtonClicked() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\slate\private\framework\multibox\smenuentryblock.cpp:1002]
[2017.09.20-14.06.51:849][441]LogWindows:Error: UE4Editor-Slate.dll!TMemberFunctionCaller<SMenuEntryBlock,FReply (__cdecl SMenuEntryBlock::*)(void) __ptr64>::operator()<>() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\public\delegates\delegateinstanceinterface.h:165]
[2017.09.20-14.06.51:849][441]LogWindows:Error: UE4Editor-Slate.dll!UE4Tuple_Private::TTupleImpl<TIntegerSequence<unsigned int> >::ApplyAfter<TMemberFunctionCaller<SMenuEntryBlock,FReply (__cdecl SMenuEntryBlock::*)(void) __ptr64> >() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\public\templates\tuple.h:497]
[2017.09.20-14.06.51:849][441]LogWindows:Error: UE4Editor-Slate.dll!TBaseSPMethodDelegateInstance<0,SMenuEntryBlock,0,FReply __cdecl(void)>::Execute() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:327]
[2017.09.20-14.06.51:849][441]LogWindows:Error: UE4Editor-Slate.dll!TBaseDelegate<FReply>::Execute() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:537]
[2017.09.20-14.06.51:849][441]LogWindows:Error: UE4Editor-Slate.dll!SButton::OnMouseButtonUp() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\slate\private\widgets\input\sbutton.cpp:278]
[2017.09.20-14.06.51:849][441]LogWindows:Error: UE4Editor-Slate.dll!SMenuEntryButton::OnMouseButtonUp() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\slate\private\framework\multibox\smenuentryblock.cpp:399]
[2017.09.20-14.06.51:849][441]LogWindows:Error: UE4Editor-Slate.dll!<lambda_8d0e9a1da76abd0a756a3a9d775f5ed1>::operator()() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5049]
[2017.09.20-14.06.51:849][441]LogWindows:Error: UE4Editor-Slate.dll!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,<lambda_8d0e9a1da76abd0a756a3a9d775f5ed1> >() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:239]
[2017.09.20-14.06.51:849][441]LogWindows:Error: UE4Editor-Slate.dll!FSlateApplication::RoutePointerUpEvent() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5038]
[2017.09.20-14.06.51:849][441]LogWindows:Error: UE4Editor-Slate.dll!FSlateApplication::ProcessMouseButtonUpEvent() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5515]
[2017.09.20-14.06.51:849][441]LogWindows:Error: UE4Editor-Slate.dll!FSlateApplication::OnMouseUp() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5495]
[2017.09.20-14.06.51:849][441]LogWindows:Error: UE4Editor-Core.dll!FWindowsApplication::ProcessDeferredMessage() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:1704]
[2017.09.20-14.06.51:849][441]LogWindows:Error: UE4Editor-Core.dll!FWindowsApplication::DeferMessage() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:2127]
[2017.09.20-14.06.51:849][441]LogWindows:Error: UE4Editor-Core.dll!FWindowsApplication::ProcessMessage() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:867]
[2017.09.20-14.06.51:849][441]LogWindows:Error: UE4Editor-Core.dll!FWindowsApplication::AppWndProc() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:714]
[2017.09.20-14.06.51:849][441]LogWindows:Error: USER32.dll!0x0000000076D99BBD
[2017.09.20-14.06.51:849][441]LogWindows:Error: USER32.dll!0x0000000076D998C2
[2017.09.20-14.06.51:849][441]LogWindows:Error: UE4Editor-Core.dll!FWindowsPlatformMisc::PumpMessages() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\private\windows\windowsplatformmisc.cpp:1009]
[2017.09.20-14.06.51:849][441]LogWindows:Error: UE4Editor.exe!FEngineLoop::Tick() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\launch\private\launchengineloop.cpp:3058]
[2017.09.20-14.06.51:849][441]LogWindows:Error: UE4Editor.exe!GuardedMain() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\launch\private\launch.cpp:166]
[2017.09.20-14.06.51:849][441]LogWindows:Error: UE4Editor.exe!GuardedMainWrapper() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:134]
[2017.09.20-14.06.51:849][441]LogWindows:Error: UE4Editor.exe!WinMain() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:210]
[2017.09.20-14.06.51:849][441]LogWindows:Error: UE4Editor.exe!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253]
[2017.09.20-14.06.51:849][441]LogWindows:Error: kernel32.dll!0x0000000076C759CD
[2017.09.20-14.06.51:849][441]LogWindows:Error: ntdll.dll!0x0000000076EAA561
[2017.09.20-14.06.51:849][441]LogWindows:Error: ntdll.dll!0x0000000076EAA561
[2017.09.20-14.06.51:849][441]LogWindows:Error: 
[2017.09.20-14.06.51:866][441]LogExit: Executing StaticShutdownAfterError
[2017.09.20-14.06.51:875][441]LogWindows: FPlatformMisc::RequestExit(1)
[2017.09.20-14.06.51:875][441]Log file closed, 09/20/17 10:06:51

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-50076 in the post.

0
Login to Vote

Fixed
ComponentUE - Gameplay - Blueprint Editor
Affects Versions4.164.174.18
Target Fix4.18
Fix Commit3665090
Release Commit3665090
CreatedSep 20, 2017
ResolvedSep 26, 2017
UpdatedApr 27, 2018