Struct Failure: Broken Project

I’m at a loss here. I have been trying to figure out how to fix this error since Labor Day weekend and I have no idea how to move forward. I am at a point where I might just have to start over.

A little background: This UE4.25 project uses blueprints. In my RPG game project I use a Struct called “Equipment” that houses all the information about a piece of equipment (icon, an Enum array that lists what classes can use it, damage, pointers to specific equipment classes, etc.) The Enum variable listed a total of 18 character classes. This equipment struct is used heavily; used in functions, used in the equipment classes themselves, and in interfaces like inventory.

The problem: The last thing I remember doing was editing the Enum variable by shortening the list of character classes from 18 to 12. This caused the equipment Struct to have compilation problems. When a Struct cannot compile in UE4, it will cause errors for every single blueprint class in the project its referenced in.

What happens: I suppose the damage was too much, because from there on in any time you even left click on the Struct, UE4 crashes. Anything that that Struct references and you attempt to click on it, UE4 will crash.

What I tried: I have a backup of the project that used an older version of the struct. I tried swapping out the equipment Struct for an older one. This allowed me to open the struct, but yet the uncompiled blueprints would crash upon clicking. I swapped out all the old references and no luck either. I then reverted back.

This is the error that is displayed:

Assertion failed: OwningNode [File:D:\Build++UE4\Sync\Engine\Source\Runtime\Engine\Classes\EdGraph/EdGraphPin.h] [Line: 474]

UE4Editor_Core!AssertFailedImplV() [D:\Build++UE4\Sync\Engine\Source\Runtime\Core\Private\Misc\AssertionMacros.cpp:100]
UE4Editor_Core!FDebug::CheckVerifyFailedImpl() [D:\Build++UE4\Sync\Engine\Source\Runtime\Core\Private\Misc\AssertionMacros.cpp:450]
UE4Editor_Engine!UEdGraphPin::DoesDefaultValueMatchAutogenerated() [D:\Build++UE4\Sync\Engine\Source\Runtime\Engine\Private\EdGraph\EdGraphPin.cpp:710]
UE4Editor_BlueprintGraph!UK2Node::ValidateOrphanPins() [D:\Build++UE4\Sync\Engine\Source\Editor\BlueprintGraph\Private\K2Node.cpp:987]
UE4Editor_KismetCompiler!FKismetCompilerContext::CompileClassLayout() [D:\Build++UE4\Sync\Engine\Source\Editor\KismetCompiler\Private\KismetCompiler.cpp:3970]
UE4Editor_Kismet!FBlueprintCompilationManagerImpl::FlushCompilationQueueImpl() [D:\Build++UE4\Sync\Engine\Source\Editor\Kismet\Private\BlueprintCompilationManager.cpp:1212]
UE4Editor_Kismet!FBlueprintCompilationManager::FlushCompilationQueue() [D:\Build++UE4\Sync\Engine\Source\Editor\Kismet\Private\BlueprintCompilationManager.cpp:3020]
UE4Editor_CoreUObject!FScopedClassDependencyGather::~FScopedClassDependencyGather() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\Blueprint\BlueprintSupport.cpp:440]
UE4Editor_CoreUObject!FLinkerLoad::CreateExport() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp:4578]
UE4Editor_CoreUObject!FLinkerLoad::IndexToObject() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp:4811]
UE4Editor_CoreUObject!FLinkerLoad::CreateExport() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp:4185]
UE4Editor_CoreUObject!FLinkerLoad::CreateExportAndPreload() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp:3233]
UE4Editor_CoreUObject!FLinkerLoad::LoadAllObjects() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp:3397]
UE4Editor_CoreUObject!LoadPackageInternal() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectGlobals.cpp:1312]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImportInner() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp:2861]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImport() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp:2583]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImportInner() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp:2927]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImport() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp:2583]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImportInner() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp:2927]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImport() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp:2583]
UE4Editor_CoreUObject!FLinkerLoad::Verify() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp:2355]
UE4Editor_CoreUObject!FLinkerLoad::FinalizeCreation() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp:2257]
UE4Editor_CoreUObject!FLinkerLoad::Tick() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp:790]
UE4Editor_CoreUObject!FLinkerLoad::CreateLinker() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp:459]
UE4Editor_CoreUObject!GetPackageLinker() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\Linker.cpp:745]
UE4Editor_CoreUObject!LoadPackageInternal() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectGlobals.cpp:1208]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImportInner() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp:2861]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImport() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp:2583]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImportInner() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp:2927]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImport() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp:2583]
UE4Editor_CoreUObject!FLinkerLoad::Verify() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp:2355]
UE4Editor_CoreUObject!FLinkerLoad::FinalizeCreation() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp:2257]
UE4Editor_CoreUObject!FLinkerLoad::Tick() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp:790]
UE4Editor_CoreUObject!FLinkerLoad::CreateLinker() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp:459]
UE4Editor_CoreUObject!GetPackageLinker() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\Linker.cpp:745]
UE4Editor_CoreUObject!LoadPackageInternal() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectGlobals.cpp:1208]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImportInner() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp:2861]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImport() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp:2583]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImportInner() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp:2927]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImport() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp:2583]
UE4Editor_CoreUObject!FLinkerLoad::Verify() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp:2355]
UE4Editor_CoreUObject!FLinkerLoad::FinalizeCreation() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp:2257]
UE4Editor_CoreUObject!FLinkerLoad::Tick() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp:790]
UE4Editor_CoreUObject!FLinkerLoad::CreateLinker() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp:459]
UE4Editor_CoreUObject!GetPackageLinker() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\Linker.cpp:745]
UE4Editor_CoreUObject!LoadPackageInternal() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectGlobals.cpp:1208]
UE4Editor_CoreUObject!LoadPackage() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectGlobals.cpp:1427]
UE4Editor_CoreUObject!ResolveName() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectGlobals.cpp:767]
UE4Editor_CoreUObject!StaticLoadObjectInternal() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectGlobals.cpp:829]
UE4Editor_CoreUObject!StaticLoadObject() [D:\Build++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectGlobals.cpp:904]
UE4Editor_ContentBrowser!SContentBrowser::OnAssetsActivated() [D:\Build++UE4\Sync\Engine\Source\Editor\ContentBrowser\Private\SContentBrowser.cpp:2280]
UE4Editor_ContentBrowser!TBaseSPMethodDelegateInstance<0,SContentBrowser,0,void __cdecl(TArray<FAssetData,TSizedDefaultAllocator<32> > const &,enum EAssetTypeActivationMethod::Type)>::ExecuteIfSafe() [D:\Build++UE4\Sync\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h:374]
UE4Editor_ContentBrowser!SAssetView::OnListMouseButtonDoubleClick() [D:\Build++UE4\Sync\Engine\Source\Editor\ContentBrowser\Private\SAssetView.cpp:4409]
UE4Editor_ContentBrowser!TBaseSPMethodDelegateInstance<0,SAssetView,0,void __cdecl(TSharedPtr<FAssetViewItem,0>)>::ExecuteIfSafe() [D:\Build++UE4\Sync\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h:374]
UE4Editor_ContentBrowser!TBaseDelegate<void,TSharedPtr<FAssetViewItem,0> >::ExecuteIfBound() [D:\Build++UE4\Sync\Engine\Source\Runtime\Core\Public\Delegates\DelegateSignatureImpl.inl:673]
UE4Editor_ContentBrowser!SListView<TSharedPtr<FAssetViewItem,0> >::Private_OnItemDoubleClicked() [D:\Build++UE4\Sync\Engine\Source\Runtime\Slate\Public\Widgets\Views\SListView.h:932]
UE4Editor_ContentBrowser!STableRow<TSharedPtr<FAssetViewItem,0> >::OnMouseButtonDoubleClick() [D:\Build++UE4\Sync\Engine\Source\Runtime\Slate\Public\Widgets\Views\STableRow.h:337]
UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FBubblePolicy,FPointerEvent,<lambda_2b5148752c2a272000c47b69ff14a42e> >() [D:\Build++UE4\Sync\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:372]
UE4Editor_Slate!FSlateApplication::RoutePointerDoubleClickEvent() [D:\Build++UE4\Sync\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:5126]
UE4Editor_Slate!FSlateApplication::ProcessMouseButtonDoubleClickEvent() [D:\Build++UE4\Sync\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:5113]
UE4Editor_Slate!FSlateApplication::OnMouseDoubleClick() [D:\Build++UE4\Sync\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:5079]
UE4Editor_ApplicationCore!FWindowsApplication::ProcessDeferredMessage() [D:\Build++UE4\Sync\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp:2144]
UE4Editor_ApplicationCore!FWindowsApplication::DeferMessage() [D:\Build++UE4\Sync\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp:2592]
UE4Editor_ApplicationCore!FWindowsApplication::ProcessMessage() [D:\Build++UE4\Sync\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp:1816]
UE4Editor_ApplicationCore!FWindowsApplication::AppWndProc() [D:\Build++UE4\Sync\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp:852]
user32
user32
UE4Editor_ApplicationCore!FWindowsPlatformApplicationMisc::PumpMessages() [D:\Build++UE4\Sync\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsPlatformApplicationMisc.cpp:130]
UE4Editor!FEngineLoop::Tick() [D:\Build++UE4\Sync\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp:4762]
UE4Editor!GuardedMain() [D:\Build++UE4\Sync\Engine\Source\Runtime\Launch\Private\Launch.cpp:169]
UE4Editor!GuardedMainWrapper() [D:\Build++UE4\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:137]
UE4Editor!WinMain() [D:\Build++UE4\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:268]
UE4Editor!__scrt_common_main_seh() [d:\agent_work\5\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
kernel32
ntdll


I think there’s no hope for me here. I hate restarting, but if it comes to that - what can I do to avoid something like this in the future? I have read that Structs are incredibly fragile, but editing a variable on a struct shouldn’t cause that much problems.

I appreciate your help.

1 Like

my standard operating procedure for blueprint structs is that if I am using one in some graphs and i want to change it’s variables, I make a new struct and replace the old one with it.

I do it this way because of the problems with them becoming corrupt like this.

I also try not to use them in general. At least for my project, the only utility I see in a struct is mostly minor convenience, so I just don’t bother with them. Perhaps there is some deeper functionality about a struct that I don’t understand though.

I’ve also found Map variables to suffer similar problems, so I do the same thing for them. If I have a Map variable in use in some graphs, I make a new one and replace the old with it if I need to make changes.

That’s good advice. I always feared though if you do the replace references when you swap out a variable that you could end up with what I’m going through, ha

so far it has seemed to avoid the problem for me. I still always do backup commits before doing it though just to be ready.

Go the struct file causing you bother and rename it. These errors usually occur when the struct has been changed but it’s not passed through to everything else. Whenever you change a struct that is being used in other places you MUST play the game in the editor before saving it or exiting. By playing the game it processes all the changes, if you save it and fail to play test the main struct ends up different from everything else everywhere else and you get errors as long as your arm. Renaming the struct in question will do a similar thing to playtesting, it will process the struct and every file it’s associated with and usually fixes errors.

2 Likes

I had the same problem. I have deleted the struct and have redone the database it was used for. Closed the project, deleted all folders in the project except Content and Config. After it, i just made everything the struct was referring to new. Compiled amd saved it. Closed the project and deleted the folders.
Doesnt fixed it!

After those steps i got into this discussion and tried Fix Up Redorectors and then Resave All.

This fixed the issue for me :smiley: