The UE5.7 Migration Bug: Macro Enum to Wildcard Crash
The Problem
When migrating a project to Unreal Engine 5.7, the engine misinterprets the data pins of Macros that utilize Enumerations. It converts those Enum pins into Wildcards.
Because the graph logic still expects an Enum but the compiler sees an unresolved Wildcard, hitting Compile triggers a fatal assertion failure in the engine’s core memory allocation: Assertion failed: InClass && InClass->ClassWithin && InClass->ClassConstructor [File:...UObjectGlobals.cpp] [Line: 3602]
How to Fix It (Step-by-Step)
If your editor is crashing on compile after updating to UE5.7, follow these steps to fix the corrupted Macro:
Step 1: Locate the Corrupted Macro
-
Open the Blueprint or Component that is causing the crash when you compile.
-
Look through your logic for any Macros (especially shared Macro Libraries) that take an Enum as an input or pass an Enum as an output.
Step 2: Fix the Pin Types
-
Open the corrupted Macro.
-
Check the Inputs and Outputs panel on the right side of the editor.
-
You will notice the Pin Type has changed to a grey Wildcard instead of your original Enum.
-
Click the dropdown menu for the pin type and manually change it back to your specific Enum type.
Step 3: Refresh and Compile
-
In the top menu bar of your Blueprint, go to File → Refresh All Nodes to force the graph to recognize the corrected pin types.
-
Hit Compile. The project will now compile successfully without crashing.
Developer Tip for UE5.7 Migrations: If you have a large project with many macros, it is highly recommended to check your Macro Libraries before hitting compile for the first time after upgrading to 5.7 to ensure no Enum pins were converted to wildcards.