Corrupt BP macro library causing editor crash

I added a function to my macro lib and it seemed to work at first (didn’t crash, at least, but I don’t remember if I tested the new macro before closing the editor).

When I started the editor again, I kept getting a crash. Assert failed: Blueprint != NULL. Took a while to figure out what was causing it.

It was this!

I guess it could be because I had two ForEachLoop inside my macro. The new macro I had added wasn’t that complex.

Hi lxiguis,

Unfortunately I cannot download the .uasset, could you post a screenshot of what it looks like so I can replicate it on my end? Has this occurred in a clean project with no other content? Also can you post your crash logs so we can have a look? Thank you!

Hi ,

Actually, it has nothing to do with that new macro. I just found out that making any changes to that MacroLib corrupts it. I just changed an existing macro’s Instance Color and I’m getting the crash at startup now.

Output log:

D:\UnrealEngine\Engine\Source\Runtime\Engine\Private\SimpleConstructionScript.cpp(139): Assertion failed: Blueprint != NULL

Call stack (engine version 4.1, from github):

 	KernelBase.dll!00007ffd2bde9376()	Unknown
>	UE4Editor-Core-Win64-Debug.dll!FDebug::AssertFailed(const char * Expr, const char * File, int Line, const wchar_t * Format, ...) Line 160	C++
 	UE4Editor-Engine-Win64-Debug.dll!USimpleConstructionScript::PostLoad() Line 142	C++
 	UE4Editor-CoreUObject-Win64-Debug.dll!UObject::ConditionalPostLoad() Line 587	C++
 	UE4Editor-CoreUObject-Win64-Debug.dll!EndLoad(const wchar_t * LoadContext) Line 1106	C++
 	UE4Editor-CoreUObject-Win64-Debug.dll!LoadPackage(UPackage * InOuter, const wchar_t * InLongPackageName, unsigned int LoadFlags) Line 782	C++
 	UE4Editor-CoreUObject-Win64-Debug.dll!StaticLoadObject(UClass * ObjectClass, UObject * InOuter, const wchar_t * InName, const wchar_t * Filename, unsigned int LoadFlags, UPackageMap * Sandbox, bool bAllowObjectReconciliation) Line 668	C++
 	UE4Editor-ShooterGame-Win64-Debug.dll!ConstructorHelpersInternal::FindOrLoadObject<UBlueprint>(FString & PathName) Line 31	etc...

On the ConditionalPostLoad() function, this’s name is SimpleConstructionScript_0 and ObjectArchetype = 0x000000167df6b660 (Name=0x000000167d0e4b88 “Default__SimpleConstructionScript”)

Copying the corrupted MacroLib.uasset to another project (I tried ContentExamples) did not crash the editor at startup, but it crashed with the same assert fail when I tried to edit a blueprint.

I have uploaded both files (corrupt and working) here, let me know if you can open them now.

Also, I am running the engine from source, so if there’s any way I can help you debugging this, let me know. Oh and attached the crash log (for the ContentExampmles attempt).

… “This attachment is not permitted because the file type is invalid”

Well copy paste then.

[2014.04.30-18.30.21:206][109]LogWindows: === Critical error: ===


[2014.04.30-18.30.21:206][109]LogWindows: Assertion failed: Blueprint != NULL [File:D:\UnrealEngine\Engine\Source\Runtime\Engine\Private\SimpleConstructionScript.cpp] [Line: 139]

Stack:
FWindowsPlatformStackWalk::StackWalkAndDump() 0x17d6582b + 0 bytes [File=d:\unrealengine\engine\source\runtime\core\private\windows\windowsplatformstackwalk.cpp:177] [in D:\UnrealEngine\Engine\Binaries\Win64\UE4Editor-Core-Win64-Debug.dll]
FDebug::AssertFailed() 0x17ade71a + 0 bytes [File=d:\unrealengine\engine\source\runtime\core\private\misc\outputdevice.cpp:176] [in D:\UnrealEngine\Engine\Binaries\Win64\UE4Editor-Core-Win64-Debug.dll]
USimpleConstructionScript::PostLoad() 0xb15abc4  + 0 bytes [File=d:\unrealengine\engine\source\runtime\engine\private\simpleconstructionscript.cpp:142] [in D:\UnrealEngine\Engine\Binaries\Win64\UE4Editor-Engine-Win64-Debug.dll]
UObject::ConditionalPostLoad() 0x19cc1b83 + 0 bytes [File=d:\unrealengine\engine\source\runtime\coreuobject\private\uobject\obj.cpp:587] [in D:\UnrealEngine\Engine\Binaries\Win64\UE4Editor-CoreUObject-Win64-Debug.dll]
EndLoad() 0x19de372d + 0 bytes [File=d:\unrealengine\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1106] [in D:\UnrealEngine\Engine\Binaries\Win64\UE4Editor-CoreUObject-Win64-Debug.dll]

LoadPackage() 0x19df7946 + 204 bytes [File=d:\unrealengine\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:811] [in D:\UnrealEngine\Engine\Binaries\Win64\UE4Editor-CoreUObject-Win64-Debug.dll]

(ran out of character limit)

Hi ,

Please upload the logs in a . file. Thank you!

Apparently this bug was fixed in 4.2. I changed some macros Instance Colors and they are still loading succesfully. If I run into problems with this again I’ll let you know.

Fixed in 4.2.