Can't Save Blueprint (Referenced in /Engine/transient) Now crashes on startup!

Hi Epic.

I’m having a variation of This problem, I was getting the same message (the one mentioned in the original post), and not being able to save the blueprint, consistently. The problem started after I moved a blueprint (BP_Extractor02) into a subfolder. I’ve done this before and the references remain intact thanks to redirectors, but after moving this blueprint, my main player blueprint, which was referencing it, started giving me that error when attempting to save.

I opened the reference viewer and saw that it was still trying to reference BP_Extractor02 in its original location, but the only place it was referenced in the player blueprint was a struct in the construction script.

Unfortunately, a make-struct doesn’t seem to have the ability to choose the directory path, and just shows the class (BP_Extractor02 with no indication of where that class is stored), so I had to trust that it was pointing in the right direction. All blueprints compiled correctly, but the player blueprint still wouldn’t save.

Now the editor crashes on startup. Crash report:

MachineId:B78EDE364932DE971544F6A1D5BC2209
EpicAccountId:6086868679774b65b64f001dd89772ce

Unknown exception - code 00000001 (first/second chance not available)

Assertion failed: BlueprintObj->GeneratedClass [File:D:\BuildFarm\buildmachine_++depot+UE4-Releases+4.7\Engine\Source\Editor\UnrealEd\Private\Kismet2\Kismet2.cpp] [Line: 896] 
Invalid generated class for StructureFunctionLibrary

KERNELBASE + 37901 bytes
UE4Editor_Core!FOutputDeviceWindowsError::Serialize() + 292 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\core\private\windows\windowsplatformoutputdevices.cpp:95]
UE4Editor_Core!FOutputDevice::Logf__VA() + 248 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\core\private\misc\outputdevice.cpp:144]
UE4Editor_Core!FDebug::AssertFailed() + 1079 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\core\private\misc\outputdevice.cpp:224]
UE4Editor_UnrealEd!FKismetEditorUtilities::RecompileBlueprintBytecode() + 237 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\editor\unrealed\private\kismet2\kismet2.cpp:896]
UE4Editor_Engine!UBlueprintGeneratedClass::ConditionalRecompileClass() + 199 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\engine\private\blueprintgeneratedclass.cpp:247]
UE4Editor_CoreUObject!FScopedClassDependencyGather::~FScopedClassDependencyGather() + 97 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\blueprint\blueprintsupport.cpp:133]
UE4Editor_CoreUObject!ULinkerLoad::CreateExport() + 5855 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:3612]
UE4Editor_CoreUObject!ULinkerLoad::IndexToObject() + 152 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:3804]
UE4Editor_CoreUObject!ULinkerLoad::CreateExport() + 3505 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:3329]
UE4Editor_CoreUObject!ULinkerLoad::CreateExportAndPreload() + 27 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2520]
UE4Editor_CoreUObject!ULinkerLoad::LoadAllObjects() + 603 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2628]
UE4Editor_CoreUObject!LoadPackageInternal() + 2055 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:896]
UE4Editor_CoreUObject!ULinkerLoad::VerifyImportInner() + 1195 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2213]
UE4Editor_CoreUObject!ULinkerLoad::VerifyImport() + 195 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:1978]
UE4Editor_CoreUObject!ULinkerLoad::VerifyImportInner() + 2153 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2261]
UE4Editor_CoreUObject!ULinkerLoad::VerifyImport() + 195 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:1978]
UE4Editor_CoreUObject!ULinkerLoad::Verify() + 807 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:1768]
UE4Editor_CoreUObject!ULinkerLoad::FinalizeCreation() + 432 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:1674]
UE4Editor_CoreUObject!ULinkerLoad::Tick() + 336 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:634]
UE4Editor_CoreUObject!ULinkerLoad::CreateLinker() + 111 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:382]
UE4Editor_CoreUObject!GetPackageLinker() + 2546 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linker.cpp:668]
UE4Editor_CoreUObject!LoadPackageInternal() + 1567 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:833]
UE4Editor_CoreUObject!ULinkerLoad::VerifyImportInner() + 1195 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2213]
UE4Editor_CoreUObject!ULinkerLoad::VerifyImport() + 195 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:1978]
UE4Editor_CoreUObject!ULinkerLoad::VerifyImportInner() + 2153 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2261]
UE4Editor_CoreUObject!ULinkerLoad::VerifyImport() + 195 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:1978]
UE4Editor_CoreUObject!ULinkerLoad::Verify() + 807 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:1768]
UE4Editor_CoreUObject!ULinkerLoad::FinalizeCreation() + 432 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:1674]
UE4Editor_CoreUObject!ULinkerLoad::Tick() + 336 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:634]
UE4Editor_CoreUObject!ULinkerLoad::CreateLinker() + 111 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:382]
UE4Editor_CoreUObject!GetPackageLinker() + 2546 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linker.cpp:668]
UE4Editor_CoreUObject!LoadPackageInternal() + 1567 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:833]
UE4Editor_CoreUObject!ULinkerLoad::VerifyImportInner() + 1195 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2213]
UE4Editor_CoreUObject!ULinkerLoad::VerifyImport() + 195 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:1978]
UE4Editor_CoreUObject!ULinkerLoad::VerifyImportInner() + 2153 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2261]
UE4Editor_CoreUObject!ULinkerLoad::VerifyImport() + 195 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:1978]
UE4Editor_CoreUObject!ULinkerLoad::Verify() + 807 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:1768]
UE4Editor_CoreUObject!ULinkerLoad::FinalizeCreation() + 432 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:1674]
UE4Editor_CoreUObject!ULinkerLoad::Tick() + 336 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:634]
UE4Editor_CoreUObject!ULinkerLoad::CreateLinker() + 111 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:382]
UE4Editor_CoreUObject!GetPackageLinker() + 2546 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linker.cpp:668]
UE4Editor_CoreUObject!LoadPackageInternal() + 1567 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:833]
UE4Editor_CoreUObject!ULinkerLoad::VerifyImportInner() + 1195 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2213]
UE4Editor_CoreUObject!ULinkerLoad::VerifyImport() + 195 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:1978]
UE4Editor_CoreUObject!ULinkerLoad::VerifyImportInner() + 2153 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2261]
UE4Editor_CoreUObject!ULinkerLoad::VerifyImport() + 195 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:1978]
UE4Editor_CoreUObject!ULinkerLoad::Verify() + 807 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:1768]
UE4Editor_CoreUObject!ULinkerLoad::FinalizeCreation() + 432 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:1674]
UE4Editor_CoreUObject!ULinkerLoad::Tick() + 336 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:634]
UE4Editor_CoreUObject!ULinkerLoad::CreateLinker() + 111 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:382]
UE4Editor_CoreUObject!GetPackageLinker() + 2546 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linker.cpp:668]
UE4Editor_CoreUObject!LoadPackageInternal() + 1567 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:833]
UE4Editor_CoreUObject!ULinkerLoad::VerifyImportInner() + 1195 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2213]
UE4Editor_CoreUObject!ULinkerLoad::VerifyImport() + 195 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:1978]
UE4Editor_CoreUObject!ULinkerLoad::VerifyImportInner() + 2153 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2261]
UE4Editor_CoreUObject!ULinkerLoad::VerifyImport() + 195 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:1978]
UE4Editor_CoreUObject!ULinkerLoad::Verify() + 807 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:1768]
UE4Editor_CoreUObject!ULinkerLoad::FinalizeCreation() + 432 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:1674]
UE4Editor_CoreUObject!ULinkerLoad::Tick() + 336 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:634]
UE4Editor_CoreUObject!ULinkerLoad::CreateLinker() + 111 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:382]
UE4Editor_CoreUObject!GetPackageLinker() + 2546 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\linker.cpp:668]
UE4Editor_CoreUObject!LoadPackageInternal() + 1567 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:833]
UE4Editor_UnrealEd!UEditorEngine::Map_Load() + 5034 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\editor\unrealed\private\editorserver.cpp:2245]
UE4Editor_UnrealEd!UEditorEngine::HandleMapCommand() + 349 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\editor\unrealed\private\editorserver.cpp:5680]
UE4Editor_UnrealEd!UEditorEngine::Exec() + 797 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\editor\unrealed\private\editorserver.cpp:5180]
UE4Editor_UnrealEd!UUnrealEdEngine::Exec() + 273 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\editor\unrealed\private\unrealedsrv.cpp:742]
UE4Editor_UnrealEd!FEditorFileUtils::LoadMap() + 789 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\editor\unrealed\private\filehelpers.cpp:1910]
UE4Editor_UnrealEd!FEditorFileUtils::LoadDefaultMapAtStartup() + 216 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\editor\unrealed\private\filehelpers.cpp:3070]
UE4Editor_UnrealEd!FUnrealEdMisc::OnInit() + 2263 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\editor\unrealed\private\unrealedmisc.cpp:299]
UE4Editor_UnrealEd!EditorInit() + 3254 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\editor\unrealed\private\unrealed.cpp:86]
UE4Editor!GuardedMain() + 926 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\launch\private\launch.cpp:133]
UE4Editor!GuardedMainWrapper() + 26 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\launch\private\windows\launchwindows.cpp:126]
UE4Editor!WinMain() + 249 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\launch\private\windows\launchwindows.cpp:202]
UE4Editor!__tmainCRTStartup() + 329 bytes [f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c:618]

If I can get the editor opening again, I may be able to fix the “transient” problem, as the other post referenced.

Please help!

Can you post your crash logs here so I can take a look? Additionally, go into your windows filepath and manually move the file back to its original position. See if this will allow you to open the project so you can manually alter the struct.

Here you go

And I got the asset wrong. it was BP_CapacitorBank02. Moving it back to the original location still results in a crash. The log says “invalid generated class for ScructureFunctionLib”. I remember I did do something to a funcion in that library - I made it a pure function, as I thought that was what was messing it up before.

I think the root cause of the problem was that I copy-pasted some nodes from one blueprint to another, and everything after that was in effort to fix it.

Sorry for the confusion

If you are comfortable with it, would you mind sharing your project with me? I have an idea of what may be going on and would like to confirm it. Thank you!

I’ll get a copy of it zipped up soon. Is Dropbox OK?

Hi Zumf,

Dropbox would be fine. You can send Adam a link via PM on the forums, or you can post the link here. Thanks!

I’ve sent you a PM with the link, Adam. Thanks so much for looking into this!

Hi Zumf,

I’ve responded to your PM and believe I found a solution to your specific error. I’m entering the bug report for this crash now.

Hi Zumf,

I entered a bug report, UE-12028 to be assessed by the development staff. It seems that what is occurring is when an object that is used as a class type within a struct is move, the redirector is not being picked up by the struct. The struct then replaces the data type that it cannot find with type “class”, which cannot be read, causing a crash. As a workaround for users experiencing this, please remove your maps folder so you can get into your project. From there, open your struct and manually reset the class data type to your intended data type. This will halt the crashes and you can re-add your maps to continue working normally.

Thanks Adam! Being able to open the project again is a big relief, but unfortunately I’m stuck with the original problem. Screenshots attached.

34624-issue01.png

I’ve searched for mentions of “transient” but can’t find anything. It’s baffling!

Try re-creating the struct information in your ship blueprint, as this seems to be the primary location that is seeing the error. It may simply not be picking up the redirect change, in which case re-referencing might be able to fix the error.

Sorry it took a while to get back to you. I’m not a full-time game developer yet.

re-inputting the classes into the struct and re-creating the struct information in the construction script had no effect on the problem. I even tried removing it from the ship blueprint entirely and it still wouldn’t save.

Can you send me an updated copy of the project so I can do a few tests on my end?

I was able to reproduce this and have entered a bug report, UE-12585 to be assessed by the development staff. As a workaround, before trying to save your blueprint, go into your function library and disconnect then reconnect a variable from the output node (I’ve been testing using your boolean value). You will have to do this each time you reload the editor and attempt to save the blueprint.

I am not certain what is causing the error though I have narrowed it down to the interaction between your ship blueprint and the function library. If you do not need the function library at present, deleting the three functions from your function library you have near the top of your event graph in the ship blueprint should allow you to continue without these errors occurring at all.

Thanks again Adam!

I just tried what you suggested, and (weirdly) it works! Now I can get back to business! Cheers!

For whatever its worth:

I’ve struggled with this bug and lost my work multiple times. My problem was manifesting randomly after moving some assets around. Even after fixing up redirectors and restarting editor it would randomly fail to save.

The solution in my case was to:

  1. open the BP that was failing to save
  2. From top menu do File->Refresh all nodes
  3. Done

After losing my work N amount of times I am finally able to save it. I hope this helps someone.

Awesome!! Your solution works for me!! Thank you sooooo much!!!

This same error (getting Engine/Transient messages) can occur if you duplicate an “Inherited” component in a blueprint class (which originated in C++ code) from the blueprint editor.