Everything in my project was working fine, then I closed it and reopened it later that day to find that it was suddenly crashing on startup.
I edited my default engine file in my config to open on an empty map, and I can get the editor to open, but whenever I try to open a blueprint or any map with anything in it the editor crashes.
I have looked into the crash logs and found errors relating to a blueprint structure I edited earlier today:
I do see a lot of stuff on here related to structure problemsâŚ
You could try making a new version of your structure, and then pointing everything at the new one using the âreplace referencesâ functionality of the content browser
The issue: Editing a structure and then not refreshing / saving / compiling all the classes where it is used before closing the engine can cause the engine to crash on the next start-up or any time one of those assets is opened.
How I fixed it:
Edited the defaultEngine.ini config file startup map to load an empty map â this let me get the editor open at least.
Hard replaced the modified structure by cutting it out in the explorer and pasting in one from yesterday in its place (I make a hard copy .zip backup daily â thank god.)
Still failed to open the structure or some blueprints it was being used by (engine would crash).
Looked in saved/logs/projectname.log and scrolled to the bottom where I found which blueprints were causing the errors. Spitting a bunch of errors like: [2023.12.30-01.17.50:610][412]LogProperty: Error: FStructProperty::Serialize Loading: Property âStructProperty /Game/WhispersOfTheAbyss/Blueprints/2023_Q1/Dungeons/BPC_DungeonEntrance.BPC_DungeonEntrance_C:getEntryConditions:CallFunc_CL_GetDungeonInfoAndModifier_DungeonModifierâ. Unknown structure.
I closed the editor and replaced each blueprint I found in the log with the backup from the day before using the explorer.
Now I could open the structure and any blueprint without the engine crashing. All I had to do now was refresh a couple of nodes where there was a missing pin since the structure had been replaced with an older one.
Things that didnât work:
Moving the modified structure to a new folder hoping it would update references (engine crashed)
Trying to open or refresh any assets that referenced the structure (crash)
Right click the modified struct and attempting to asset action â replace references with the struct from the day before (crash)
Deleting saved/intermediate files in either the project or the engine itself (no changes)
Entering the following into DefaultEngine.ini (no changes â crash on opening assets
[/Script/Engine.Blueprint]
bRecompileOnLoad=false
Takeaways:
Refresh EVERYTHING every time you edit a structure before you close the engine. Save and recompile the blueprints else the editor can freak tf out next time you open it. (Get the refresh all node plugin and refresh everything each time you change a structure.)
Use version control // keep backups
Thankfully the asset that I did the most work in after editing the structure was the one that wasnât causing any of the errors. After pasting in the backup struct and replacing the affected assets, I could open it and simply delete the modified pins on the struct. Presumably this was because this blueprint was compiled / refreshed / saved correctly before closing the editor.