How to identify the cause of cook errors after disabling a plugin?

We got the following error message when packaging our game with a disabled plugin, which was enabled before but not used for now.

The error message is vague, making it impossible to guess what happened, so I’m seeking help here.

Could you please tell me how to identify the cause?

(We’ve checked that there is neither C++ classes nor uassets depends on the plugin.)

***** Win64 ERROR ******
LogOutputDevice: Error: Ensure condition failed: InvocationList[ CurFunctionIndex ] != InDelegate [File:D:\p4\eagle\dev-build_pkg_win\ue\Engine\Source\Runtime\Core\Public\UObject\ScriptDelegates.h] [Line: 645]
LogInit: Display: Warning/Error Summary (Unique only)
LogInit: Display: LogOutputDevice: Error: Ensure condition failed: InvocationList[ CurFunctionIndex ] != InDelegate [File:D:\p4\eagle\dev-build_pkg_win\ue\Engine\Source\Runtime\Core\Public\UObject\ScriptDelegates.h] [Line: 645]
ERROR: Cook failed.

再現手順

Hello!

A first verification should be to review the log around the location where the Ensure is emitted as the name of the asset my appear in other messages.

The Ensure should generate a dump under Saved\Crashes\… and you should be able to find the name of the UObject (likely a BP) that is triggering it if you inspect it in the debugger. This will be a mini-dump so it is possible that the memory that contains the name was not capture. In this case, you can cook with the debugger attached and the ensure will cause a break so you can debug with the full context.

Regards,

Martin

Thank you for your reply!

Very helpful information that a dump would be generated. We’ll try investigating it.

The reason of this error is binding delegates from a UObject constructor. We fixed the problem by moving them to BeginPlay method.

Thank you for helping!