Migration from 4.26 to 4.27 PackagingResults: Error: Unknown Cook Failure

Hi, all! I’m trying to migrate project to new UE version and have Unknown Cook Failure. So I can not even figure out what’s the issue to fix it :frowning:

PackagingResults: Error: begin: stack for UAT
PackagingResults: Error: === Critical error: ===
PackagingResults: Error: Fatal error!
PackagingResults: Error: Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x0000000000000038
PackagingResults: Error: [Callstack] 0x00007ff985ac8640 UE4Editor-Engine.dll!UnknownFunction []
PackagingResults: Error: [Callstack] 0x00007ff985aaf215 UE4Editor-Engine.dll!UnknownFunction []
PackagingResults: Error: [Callstack] 0x00007ff9983ab5c0 UE4Editor-UnrealEd.dll!UnknownFunction []
PackagingResults: Error: [Callstack] 0x00007ff9983e3db3 UE4Editor-UnrealEd.dll!UnknownFunction []
PackagingResults: Error: [Callstack] 0x00007ff9983f988f UE4Editor-UnrealEd.dll!UnknownFunction []
PackagingResults: Error: [Callstack] 0x00007ff99822e6a0 UE4Editor-UnrealEd.dll!UnknownFunction []
PackagingResults: Error: [Callstack] 0x00007ff998258f4d UE4Editor-UnrealEd.dll!UnknownFunction []
PackagingResults: Error: [Callstack] 0x00007ff65031a02c UE4Editor-Win64-DebugGame-Cmd.exe!UnknownFunction []
PackagingResults: Error: [Callstack] 0x00007ff650310d2c UE4Editor-Win64-DebugGame-Cmd.exe!UnknownFunction []
PackagingResults: Error: [Callstack] 0x00007ff6503110ba UE4Editor-Win64-DebugGame-Cmd.exe!UnknownFunction []
PackagingResults: Error: [Callstack] 0x00007ff6503140dd UE4Editor-Win64-DebugGame-Cmd.exe!UnknownFunction []
PackagingResults: Error: [Callstack] 0x00007ff650325984 UE4Editor-Win64-DebugGame-Cmd.exe!UnknownFunction []
PackagingResults: Error: [Callstack] 0x00007ff6503278ca UE4Editor-Win64-DebugGame-Cmd.exe!UnknownFunction []
PackagingResults: Error: [Callstack] 0x00007ffa87a77034 KERNEL32.DLL!UnknownFunction []
PackagingResults: Error: [Callstack] 0x00007ffa88f22651 ntdll.dll!UnknownFunction []
PackagingResults: Error: end: stack for UAT
UATHelper: Packaging (Windows (64-bit)): Took 77.1219999s to run UE4Editor-Win64-DebugGame-Cmd.exe, ExitCode=3
UATHelper: Packaging (Windows (64-bit)): ERROR: Cook failed.
UATHelper: Packaging (Windows (64-bit)):        (see C:\Users\Fenyx\AppData\Roaming\Unreal Engine\AutomationTool\Logs\d+Games+UE_4.27\Log.txt for full exception trace)
PackagingResults: Error: Cook failed.
UATHelper: Packaging (Windows (64-bit)): AutomationTool exiting with ExitCode=25 (Error_UnknownCookFailure)
UATHelper: Packaging (Windows (64-bit)): BUILD FAILED
PackagingResults: Error: Unknown Cook Failure

At the beginning I couldn’t start Editor die to Python Script plugin and exception:

assertion failed: !generatedwrappedtypes.contains(typeregistryname) [file:d:/build/++ue4/sync/engine/plugins/experimental/pythonscriptplugin/source/pythonscriptplugin/private/pywrappertyperegistry.cpp] [line: 1455]

I had only one Niagara asset so I removed it and related Bluprints and turned of Python and Niagara. But anyway the issue with package persissts.
What’s could be wrong? Thx!

UPD: with editor symbols I have found at least issue with python script plugin. The issue in one of my core structs, but I have no clue what’s wrong with it…

USTRUCT(BlueprintType)
struct FCharacterAttributes : public FCharacterAttributesRow
{
	GENERATED_BODY()

	//Base mesh props. Created once per Character
	UPROPERTY(EditAnywhere, BlueprintReadWrite, SaveGame)
	FString AttributesRow{""};

	UPROPERTY(EditAnywhere, BlueprintReadWrite, SaveGame)
	TSubclassOf<ATacticalCharacter> BP{};

	UPROPERTY(EditAnywhere, BlueprintReadWrite, SaveGame)
	ECharacterSize Size{};

	UPROPERTY(EditAnywhere, BlueprintReadWrite, SaveGame)
	TSubclassOf<UAnimBP> Animation{};

	UPROPERTY(EditAnywhere, BlueprintReadWrite, SaveGame)
	USkeletalMesh* HeadGear{};

	UPROPERTY(EditAnywhere, BlueprintReadWrite, SaveGame)
	USkeletalMesh* Hair{};

	UPROPERTY(EditAnywhere, BlueprintReadWrite, SaveGame)
	USkeletalMesh* Beard{};

	UPROPERTY(EditAnywhere, BlueprintReadWrite, SaveGame)
	USkeletalMesh* Head{};

	UPROPERTY(EditAnywhere, BlueprintReadWrite, SaveGame)
	USkeletalMesh* Torso{};

	UPROPERTY(EditAnywhere, BlueprintReadWrite, SaveGame)
	USkeletalMesh* Legs{};

	UPROPERTY(EditAnywhere, BlueprintReadWrite, SaveGame)
	EModularCharacterTypeEnum modularType{EModularCharacterTypeEnum::MasterPose};

	UPROPERTY(EditAnywhere, BlueprintReadWrite, SaveGame)
	FColor HairColor{};

	UPROPERTY(EditAnywhere, BlueprintReadWrite, SaveGame)
	FColor BeardColor{};

	UPROPERTY(EditAnywhere, BlueprintReadWrite, SaveGame)
	FColor SkinColor{};

	//Secondary stats

	UPROPERTY(EditAnywhere, BlueprintReadWrite, SaveGame)
	int32 WeightCurrent{};

	UPROPERTY(EditAnywhere, BlueprintReadWrite, SaveGame)
	int32 HealthPointsCurrent{};

	UPROPERTY(EditAnywhere, BlueprintReadWrite, SaveGame)
	int32 HealthPointsLowest{};

	UPROPERTY(EditAnywhere, BlueprintReadWrite, SaveGame)
	int32 MindPointsCurrent{};

	UPROPERTY(EditAnywhere, BlueprintReadWrite, SaveGame)
	int32 ActionPointsCurrent{};

	UPROPERTY(EditAnywhere, BlueprintReadWrite, SaveGame)
	FString Name{""};

	UPROPERTY(EditAnywhere, BlueprintReadWrite, SaveGame)
	int Exp{0};

	UPROPERTY(EditAnywhere, BlueprintReadOnly, SaveGame)
	int Level{1};

	UPROPERTY(EditAnywhere, BlueprintReadWrite, SaveGame)
	TMap<FName, float> morphs;

	UPROPERTY(Instanced, EditAnywhere, BlueprintReadWrite, SaveGame)
	TArray<UCharacterFeature*> Abilities;

	UPROPERTY(Instanced, EditAnywhere, BlueprintReadWrite, SaveGame)
	TArray<USkill*> Skills;

	FCharacterAttributes() = default;

	FCharacterAttributes(const FCharacterAttributesRow& row) : FCharacterAttributesRow(row)
	{
	};

	static int32 GetTemplateStat(int32& stat) {
		return stat;
	}

	static int GetTemplateCurrent(int32& curr, int32 max) {
		if (curr > max) {
			curr = max;
		}
		return curr;
	}

	static int GetTemplateMax(int32& max, int32& stat, float& statGrowth) {
		int32 nMax = max + stat * statGrowth;
		return nMax < 0 ? 0 : nMax;
	}

	static void AddSubtractTemplateCurrent(float addition, int32& curr, int32 max) {
		curr += addition;
		if (curr < 0) {
			curr = 0;
		}

		if (curr > max) {
			curr = max;
		}
	}

	static void AddSubtractTemplateBaseMax(float addition, int32& max) {
		max += addition;
	}

	void Init() {
		HealthPointsCurrent = GetTemplateMax(
			HealthPoints,
			Constitution,
			ConstitutionToHealthPoints
		);
		HealthPointsLowest = HealthPointsCurrent;
	}
};

UPD1: After removing parts of struct I could locate the issue… BlueprintType in USTRUCT definition. But I still don’t have idea how to fix it.

For anybody who struggles with similar error. This article helped me find and fix my issue.
So I’ve changed solution configuration for Develop Editor from "$(SolutionDir)Tactical.uproject" -skipcompile to "$(SolutionDir)Tactical.uproject" -run=Cook -TargetPlatform=WindowsNoEditor -unversioned -CookAll
In that case I could run cooking in debug mode and could find broken blueprint(which actually worked in editor =/)

One additional cooment about Python plugin error. I’ve seen this error several times in search output without solution.

assertion failed: !generatedwrappedtypes.contains(typeregistryname) [file:d:/build/++ue4/sync/engine/plugins/experimental/pythonscriptplugin/source/pythonscriptplugin/private/pywrappertyperegistry.cpp] [line: 1455]

The cause in my case was renaming of classes. I had CharacterAttributes which was renamed to CharacterAttributesComponent and I created new structure with name CharacterAttributes. In that case for CharacterAttributesComponent python plugin crated 2 wrappers (CharacterAttributesComponent, CharacterAttributes (!old name)) and when new CharacterAttributes was handled, row with that name was exist.

So for my case simple removing from \Config\DefaultEngine.ini solved the issue:
+ClassRedirects = (OldName="/Script/Tactical.CharacterAttributes",NewName="/Script/Tactical.CharacterAttributesComponent")