Annoying compile issue in 4.17 preview 3

[MENTION=1345]Ben Marsh[/MENTION]

Problem still persists after applying QFE :frowning:

EDIT: My apologies, this occurred due to changes in ustruct used in blueprints. Compilation works with VS2017.

The QFE didn’t work for me either: VisualStudio.15.Release/15.2.0+26430.16 (VS2017 Community) still getting

UnrealHeaderTool failed for target 'TestProjectEditor' (platform: Win64, module info: TestProjectPath\Intermediate\Build\Win64\TestProjectEditor\Development\TestProjectEditor.uhtmanifest, exit code: OtherCompilationError (5)).

Fresh UE4.17 install, no plugins, C++ project.

Are you seeing exactly the same error message?

If the callstack is the same, it sounds like there’s something wrong with the QFE bundle itself - it should remove the possibility of getting that callstack entirely, and did fix the issue on my install. Can you check whether the timestamp on Engine/Binaries/DotNET/UnrealBuildTool.exe is updated after applying it?

[MENTION=1345]Ben Marsh[/MENTION] Ok the issue seems to be gone now. These are the things I did today morning and so far my project is compiling without any issues.

1: Closed all Unreal Editor instances.
2: Closed Visual Studio.
3: Redownloaded and applied QFE. It showed “Your Unreal Engine is now patched”.
4: Regenerated my project files. (Right click on uproject file and select “Generate Visual Studio project files”).
5: Start compiling :slight_smile:

After doing all of the above steps, project seems to compile fine.

This bug is back in 4.18p1 and p2. Here are my comments cross posted:

Still no progress at 4.18p2. With the Editor and Hot Loading, UnrealHeaderTool runs extraneously on unchanged .h files again and again. What used to take 8 seconds to compile now takes 30! Close the editor, and it is back to normal behavior… change a .cpp file and only that file compiles in 8 seconds.

However there are new bugs… With the editor closed, changing an .h file triggers “System.ArgumentNullException: Value cannot be null.” in UE_4.18\Engine\Build\BatchFiles\Build.bat. One way out of that is a clean rebuild of everything. This has been documented since 4.17: Annoying compile issue in 4.17 preview 3 - Engine Source & GitHub - Unreal Engine Forums

Another insidious new bug in 4.18 is all the UPROPERTYs Disappearing at the Details panel after a Hotload! It is intermittent but very frequent. Only way out of that is adding or renaming a dummy UPROPERTY to trigger an update on the Details panel.

The state of support for C++ developers at Epic is quite sad. It seems, the developers are hardly testing any of this. It is as if, all the company cares about lately is blueprint spaghetti…

Yup I can confirm this. Project fails to compile second time in 4.18 P2.

1>------ Build started: Project: MyProject, Configuration: Development_Editor x64 ------
1>EXEC : **error : System.ArgumentNullException: Value cannot be null.**
1>       Parameter name: source
1>          at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source, Func`2 predicate)
1>          at UnrealBuildTool.ExternalExecution.ExecuteHeaderToolIfNecessary(BuildConfiguration BuildConfiguration, UEBuildTarget Target, CppCompileEnvironment GlobalCompileEnvironment, List`1 UObjectModules, FileReference ModuleInfoFileName, ECompilationResult& UHTResult)
1>          at UnrealBuildTool.UnrealBuildTool.RunUBT(BuildConfiguration BuildConfiguration, String] Arguments, FileReference ProjectFile)
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.MakeFile.Targets(44,5): error MSB3075: The command ""D:\Unreal Engines\UE_4.18\Engine\Build\BatchFiles\Build.bat" MyProjectEditor Win64 Development "E:\Unreal Projects\MyProject\MyProject.uproject" -waitmutex" exited with code 5. Please verify that you have sufficient rights to run this command.
1>Done building project "MyProject.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

I’ve re-applied the fix in CL 3677373. It’s very unfortunate that we hit the same issue again, and that we didn’t learn our lesson and arrange test coverage around it the first time. I’ve raised it as an issue, and we’ll add test cases around it in the future.

No worries Ben :). Is there a QFE available for 4.18?

Seen again on 4.18 Preview 3. Every time I want to compile I have to generate project files again. Not ideal, obviously.

Is there a QFE coming for this Ben?

Issue seems to be fixed in 4.19. Compiled my project more than 10 times and it compiled without issues. :slight_smile:

We don’t normally issue QFEs for preview releases, but it will be fixed in the final 4.18 release (or next preview, if there is one).

Hey Ben.

We are restricted to an Source Build of 4.17.2 for the moment and am still receiving the same error though with an different parameter however this time its in UAT.

 Project.CopyBuildToStagingDirectory: ********** STAGE COMMAND STARTED **********
**00:42:45** Project.CreateStagingManifest: Creating Staging Manifest...
**00:42:45** Program.Main: ERROR: AutomationTool terminated with exception: System.ArgumentNullException: Value cannot be null.
**00:42:45** Parameter name: value
**00:42:45**    at System.String.Join(String separator, String] value)
**00:42:45**    at DeploymentContext.StageFiles(StagedFileType FileType, DirectoryReference InputDir, String Wildcard, Boolean bRecursive, String] ExcludeWildcards, StagedDirectoryReference NewPath, Boolean bAllowNone, Boolean bRemap, String NewName, Boolean bAllowNotForLicenseesFiles, Boolean bStripFilesForOtherPlatforms, Boolean bConvertToLower) in G:\FreeDome\UE4172_FreeDome\Engine\Source\Programs\AutomationTool\AutomationUtils\DeploymentContext.cs:line 629
**00:42:45**    at BaseWinPlatform.GetFilesToDeployOrStage(ProjectParams Params, DeploymentContext SC) in G:\FreeDome\UE4172_FreeDome\Engine\Source\Programs\AutomationTool\Win\WinPlatform.Automation.cs:line 47
**00:42:45**    at Win64Platform.GetFilesToDeployOrStage(ProjectParams Params, DeploymentContext SC) in G:\FreeDome\UE4172_FreeDome\Engine\Source\Programs\AutomationTool\Win\WinPlatform.Automation.cs:line 373
**00:42:45**    at Project.CreateStagingManifest(ProjectParams Params, DeploymentContext SC) in G:\FreeDome\UE4172_FreeDome\Engine\Source\Programs\AutomationTool\Scripts\CopyBuildToStagingDirectory.Automation.cs:line 291
**00:42:45**    at Project.CopyBuildToStagingDirectory(ProjectParams Params) in G:\FreeDome\UE4172_FreeDome\Engine\Source\Programs\AutomationTool\Scripts\CopyBuildToStagingDirectory.Automation.cs:line 1824
**00:42:45**    at BuildCookRun.DoBuildCookRun(ProjectParams Params) in G:\FreeDome\UE4172_FreeDome\Engine\Source\Programs\AutomationTool\Scripts\BuildCookRun.Automation.cs:line 240
**00:42:45**    at BuildCookRun.ExecuteBuild() in G:\FreeDome\UE4172_FreeDome\Engine\Source\Programs\AutomationTool\Scripts\BuildCookRun.Automation.cs:line 40
**00:42:45**    at AutomationTool.BuildCommand.Execute() in G:\FreeDome\UE4172_FreeDome\Engine\Source\Programs\AutomationTool\AutomationUtils\BuildCommand.cs:line 100
**00:42:45**    at AutomationTool.Automation.Execute(List`1 CommandsToExecute, Dictionary`2 Commands) in G:\FreeDome\UE4172_FreeDome\Engine\Source\Programs\AutomationTool\AutomationUtils\Automation.cs:line 563
**00:42:45**    at AutomationTool.Automation.Process(String] Arguments) in G:\FreeDome\UE4172_FreeDome\Engine\Source\Programs\AutomationTool\AutomationUtils\Automation.cs:line 533
**00:42:45**    at AutomationTool.Program.MainProc(Object Param) in G:\FreeDome\UE4172_FreeDome\Engine\Source\Programs\AutomationTool\Program.cs:line 133
**00:42:45**    at AutomationTool.InternalUtils.RunSingleInstance(Func`2 Main, Object Param) in G:\FreeDome\UE4172_FreeDome\Engine\Source\Programs\AutomationTool\AutomationUtils\Utils.cs:line 708
**00:42:45**    at AutomationTool.Program.Main() in G:\FreeDome\UE4172_FreeDome\Engine\Source\Programs\AutomationTool\Program.cs:line 57
**00:42:45** Program.Main: AutomationTool exiting with ExitCode=1 (Error_Unknown)
**00:42:45** BUILD FAILED

Are you able to advise as to any code changes i need to implement in order to get UAT back to an working state for 4.17.2?

Ive submitted an Bug Report.

I don’t know if this is the same error, but I’m getting a very similar message in 4.20.3:

*.b4_0: ERROR: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.—> System.ArgumentNullException: Value cannot be null.
4_0: Parameter name: source
<>c.b4_0: at System.Linq.Enumerable.Select[TSource,TResult](IEnumerable1 source, Func2 selector)
4_0: at UnrealBuildTool.TargetRules.FormatHexBytes(Byte] Data) in D:\Build++UE4\Sync\Saved\CsTools\Engine\Source\Programs\UnrealBuildTool\Configuration\TargetRules.cs:line 1255
<>c.b4_0: at UnrealBuildTool.TargetRules…ctor(TargetInfo Target) in D:\Build++UE4\Sync\Saved\CsTools\Engine\Source\Programs\UnrealBuildTool\Configuration\TargetRules.cs:line 1231
4_0: at TheFeyLandsTarget…ctor(TargetInfo Target) in c:\Users\user\Documents\Unreal Projects\TheFreeLands 4.20\Intermediate\Source\TheFeyLands.Target.cs:line 7 <>c.b**4_0: — End of inner exception stack trace — *

Bug report submitted:

Can’t package and I’ve tried deleting all temporary folders to no avail.


Friendly suggestion from a follower: uncheck encryption check boxes in the Crypto section of Project Settings!