# Unrecoverable editor crash after changing BP struct variable type

**URL:** <https://forums.unrealengine.com/t/unrecoverable-editor-crash-after-changing-bp-struct-variable-type/403384>\
**Category:** Blueprint\
**Tags:** unreal-engine, crash, fix, bug-report, editor, question, Blueprint\
**Created:** [September 1, 2017, 12:48pm UTC](https://forums.unrealengine.com/t/unrecoverable-editor-crash-after-changing-bp-struct-variable-type/403384 "2017-09-01T12:48:39Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![KnightArchitects](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@KnightArchitects](https://forums.unrealengine.com/u/KnightArchitects)\
**Post date:** [September 1, 2017, 12:48pm UTC](https://forums.unrealengine.com/t/unrecoverable-editor-crash-after-changing-bp-struct-variable-type/403384/1 "2017-09-01T12:48:39Z")

</div>

Just had this a crash after changing a variable type in my struct.

```
UE4Editor_Core!FDebug::AssertFailed() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:349]
UE4Editor_BlueprintGraph!FKCHandler_MakeStruct::Compile() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\blueprintgraph\private\makestructhandler.cpp:118]
UE4Editor_KismetCompiler!FKismetCompilerContext::CompileFunction() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\kismetcompiler\private\kismetcompiler.cpp:1894]
UE4Editor_KismetCompiler!FKismetCompilerContext::CompileFunctions() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\kismetcompiler\private\kismetcompiler.cpp:3917]
UE4Editor_Kismet!FBlueprintCompilationManagerImpl::FlushCompilationQueueImpl() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\kismet\private\blueprintcompilationmanager.cpp:749]
UE4Editor_Kismet!FBlueprintCompilationManager::FlushCompilationQueue() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\kismet\private\blueprintcompilationmanager.cpp:1926]
UE4Editor_Engine!UBlueprintGeneratedClass::ConditionalRecompileClass() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\engine\private\blueprintgeneratedclass.cpp:260]
UE4Editor_CoreUObject!FScopedClassDependencyGather::~FScopedClassDependencyGather() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\blueprint\blueprintsupport.cpp:376]
UE4Editor_CoreUObject!FLinkerLoad::CreateExport() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:4010]
UE4Editor_CoreUObject!FLinkerLoad::IndexToObject() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:4227]
UE4Editor_CoreUObject!FLinkerLoad::CreateExport() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:3697]
UE4Editor_CoreUObject!FLinkerLoad::CreateExportAndPreload() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2743]
UE4Editor_CoreUObject!FLinkerLoad::LoadAllObjects() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2890]
UE4Editor_CoreUObject!LoadPackageInternal() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1303]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImportInner() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2420]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImport() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2176]
UE4Editor_CoreUObject!FLinkerLoad::Verify() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:1955]
UE4Editor_CoreUObject!FLinkerLoad::FinalizeCreation() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:1865]
UE4Editor_CoreUObject!FLinkerLoad::Tick() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:734]
UE4Editor_CoreUObject!FLinkerLoad::CreateLinker() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:437]
UE4Editor_CoreUObject!GetPackageLinker() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linker.cpp:693]
UE4Editor_CoreUObject!LoadPackageInternal() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1215]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImportInner() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2420]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImport() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2176]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImportInner() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2468]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImport() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2176]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImportInner() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2468]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImport() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2176]
UE4Editor_CoreUObject!FLinkerLoad::Verify() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:1955]
UE4Editor_CoreUObject!FLinkerLoad::FinalizeCreation() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:1865]
UE4Editor_CoreUObject!FLinkerLoad::Tick() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:734]
UE4Editor_CoreUObject!FLinkerLoad::CreateLinker() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:437]
UE4Editor_CoreUObject!GetPackageLinker() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linker.cpp:693]
UE4Editor_CoreUObject!LoadPackageInternal() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1215]
UE4Editor_CoreUObject!LoadPackage() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1409]
UE4Editor_UnrealEd!UEditorEngine::Map_Load() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\unrealed\private\editorserver.cpp:2491]
UE4Editor_UnrealEd!UEditorEngine::HandleMapCommand() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\unrealed\private\editorserver.cpp:5991]
UE4Editor_UnrealEd!UEditorEngine::Exec() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\unrealed\private\editorserver.cpp:5468]
UE4Editor_UnrealEd!UUnrealEdEngine::Exec() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\unrealed\private\unrealedsrv.cpp:672]
UE4Editor_UnrealEd!FEditorFileUtils::LoadMap() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\unrealed\private\filehelpers.cpp:2192]
UE4Editor_UnrealEd!FEditorFileUtils::LoadDefaultMapAtStartup() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\unrealed\private\filehelpers.cpp:3509]
UE4Editor_UnrealEd!FUnrealEdMisc::OnInit() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\unrealed\private\unrealedmisc.cpp:348]
UE4Editor_UnrealEd!EditorInit() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\unrealed\private\unrealedglobals.cpp:97]
UE4Editor!GuardedMain() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\launch\private\launch.cpp:150]
UE4Editor!GuardedMainWrapper() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:134]
UE4Editor!WinMain() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:210]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253]
kernel32
ntdll

```

I couldn’t get back into the editor as it tried to compile the BP on startup!

Reproduction:

1. Create new empty project.
2. Create struct with a float value.
3. Create actor and in the event graph create a ‘make _struct_’ node and change the default float value then just promote the struct to a variable and set it on begin play.
4. Compile and save the actor.
5. Go into the struct and change the float to a boolean type.
6. Go back to the actor and compile. **CRASH**
7. You will now be unable to edit and fix the actor as it crashes on load.

I managed to fix it by adding a check for orphaned pins in the FKCHandler\_MakeStruct::Compile method:

Editor\BlueprintGraph\Private\MakeStructHandler.cpp

```
//@L109
for (UEdGraphPin* Pin : Node->Pins)
	{
		//CrashFix
		if (Pin->bOrphanedPin)
		{
			CompilerContext.MessageLog.Error(*LOCTEXT("MakeStruct_OrphanedPin_Error", "Orphaned struct pin @@").ToString(), Pin);
			continue;
		}
		//-CrashFix
		if (Pin && (Pin != StructPin) && !CompilerContext.GetSchema()->IsMetaPin(*Pin) && (Pin->Direction == EGPD_Input))
		{
			UProperty* BoundProperty = FindField<UProperty>(Node->StructType, *(Pin->PinName));
			check(BoundProperty);
```

---

<div class="post-metadata">

**Author:** ![KnightArchitects](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@KnightArchitects](https://forums.unrealengine.com/u/KnightArchitects)\
**Post date:** [September 8, 2017, 3:58pm UTC](https://forums.unrealengine.com/t/unrecoverable-editor-crash-after-changing-bp-struct-variable-type/403384/2 "2017-09-08T15:58:54Z")

</div>

Bump------

---

<div class="post-metadata">

**Author:** ![anonymous\_user\_2b03d27c](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_2b03d27c](https://forums.unrealengine.com/u/anonymous_user_2b03d27c)\
**Post date:** [September 11, 2017, 6:32pm UTC](https://forums.unrealengine.com/t/unrecoverable-editor-crash-after-changing-bp-struct-variable-type/403384/3 "2017-09-11T18:32:40Z")

</div>

Hey -

Thank you for submitting a bug report. I have reproduced this issue and logged a report for it here [Unreal Engine Issues and Bug Tracker (UE-49596)](https://issues.unrealengine.com/issue/UE-49596) . You can track the report’s status as the issue is reviewed by our development staff. Please be aware that this issue may not be prioritized or fixed soon.

Cheers
