Creating a packaged build of the project has started failing on our build server, but not on local workstations. The build step succeeds, the cook step throws an exception with the error
AutomationTool exiting with ExitCode=25 (Error_UnknownCookFailure)
The exception stacktrace appears to be mostly unrelated - it’s dying at a point in CommandletUtils.cs that is related to copying and deleting log files. The real baffling thing in the cook log that I think is the ultimate issue is this:
Message dialog closed, result: Ok, title: Message, text: The game module 'cavrnus_project' could not be found. Please ensure that this module exists and that it is compiled.
LogCore: Engine exit requested (reason: EngineExit() was called)
This is the module of our project, and it successfully compiled during the build step. It seems impossible that it completed the build step successfully and then isn’t compiled during cooking… so I took a look at the intermediates. The difference between the build server and my local PC is that it seems to have appended the characters ‘NU’ (presumably for non-unity building) to the module folder; I think this is why the cooker cannot find the compiled code for this module. Comparing the build command output between the last build that succeeded and the following build, I see this output immediately prior to writing the manifest and creating the makefile in the failing build:
Parsing headers for cavrnus_project
Running Internal UnrealHeaderTool C:\TeamCity\buildAgent\work\cavrnus-project\cavrnus_project.uproject C:\TeamCity\buildAgent\work\cavrnus_project\Intermediate\Build\Win64\cavrnus_projectNU\Development\cavrnus_project.uhtmanifest -WarningsAsErrors
Total of 7684 written
Reflection code generated for cavrnus_project in 22.5999982 seconds
^ note the intermediates module name, which no longer matches the actual name.
Does anyone know why the UHT would suddenly decided to append “NU” into the path and how to prevent it? Logs from builds that worked also seem to indicate it was building non-Unity. For now I plan to re-enable Unity building in the build server, but I have no idea what changed to cause this issue. Running the same TeamCity scripts on my local machine does not produce this.
EDIT: Removing the non-unity build setting did result in the correctly named folder, but the cook process still fails and contains the message that the game module could not be found.