UE4 Build Error

I have a project, which was build in v4.11, which I had to update to 4.12 in order to fix a compatibility issue. While that original issue is fixed, I’m now seeing a build error which I wasn’t encountering previously, and I’m not sure how to fix it. Searches haven’t been able to yield much information on it, so I’m hoping someone here can help me.

I’ve attached the log text. I’m aware there are many warnings related to the Substance Designer plugin (it was used by one of our artists earlier in the project, but has since been phased out; no assets in the build use it anymore, but it’s still throwing warnings), but these are just warnings and shouldn’t keep me from building, nor impede final performance of the project.

Thanks in advance for any insight or assistance you can offer.link text

From this section of the log text:

MainFrameActions: Packaging (Windows (64-bit)): UE4Editor-Cmd: [2016.07.28-15.30.57:204][  0]LogInit:Display: LogOutputDevice:Warning: === Handled error: ===
MainFrameActions: Packaging (Windows (64-bit)): UE4Editor-Cmd: 
MainFrameActions: Packaging (Windows (64-bit)): UE4Editor-Cmd: 
MainFrameActions: Packaging (Windows (64-bit)): UE4Editor-Cmd: 
MainFrameActions: Packaging (Windows (64-bit)): UE4Editor-Cmd: Ensure condition failed: false [File:D:\Build\++UE4+Release-4.12+Compile\Sync\Engine\Source\Runtime\Core\Private\Misc\ConfigCacheIni.cpp] [Line: 3358]
MainFrameActions: Packaging (Windows (64-bit)): UE4Editor-Cmd: 
MainFrameActions: Packaging (Windows (64-bit)): UE4Editor-Cmd: The ini file 'C:/Perforce Workspace/MyProject/Saved/Config/Windows/Engine.ini' tries to set the console variable 'showflag.decals' marked with ECVF_Cheat, this is only allowed in consolevariables.ini (was always like this in Shipping / Test but the ensure/message is new)

It appears that you are trying to set ‘showflag.decals’ in Saved/Config/Windows/Engine.ini, and you now need to either remove that flag from the Engine.ini file, or move it to your consolevariables.ini file (if you still need explicitly it set).

Looks like this code is new for 4.12 and your showflag is likely a carryover from 4.11.

I actually checked that file, but the listed flag doesn’t appear anywhere in it (it’s not a large file; full text below). Furthermore, I tried removing that config completely and letting the editor auto-generate a new one during the build process, but the same error appears. So, I’m not sure where that flag is, or where it’s actually getting set. Any thoughts?

The Config file in question is just the following:

[Core.System]
Paths=…/…/…/Engine/Content
Paths=%GAMEDIR%Content
Paths=…/…/…/Engine/Plugins/2D/Paper2D/Content

[/Script/AndroidPlatformEditor.AndroidSDKSettings]
SDKPath=(Path=)
NDKPath=(Path=)
ANTPath=(Path=)
JavaPath=(Path=)

[WindowsApplication.Accessibility]
StickyKeysHotkey=False
ToggleKeysHotkey=False
FilterKeysHotkey=False
StickyKeysConfirmation=False
ToggleKeysConfirmation=False
FilterKeysConfirmation=False

[/Script/UdpMessaging.UdpMessagingSettings]
EnableTransport=True
UnicastEndpoint=0.0.0.0:0
MulticastEndpoint=230.0.0.1:6666
MulticastTimeToLive=1
EnableTunnel=False
TunnelUnicastEndpoint=
TunnelMulticastEndpoint=

[SteamVR.Settings]
WindowMirrorMode=1

It looks like that ensure check for cheating console variables is only done for non-shipping builds. So one way to get you over this is to do a shipping build.

If you wanted to check if the decals flag is coming from another file and internally being merged in, you could try a full project directory search for “showflag.decals” using Visual Studio or Notepad++. The same could be done on the UE4 engine directory.

In looking through the code for this, I see that this same ensure pathway is used for the scalability quality levels. So it is possible the decal changes could be coming from the quality levels, even though the reported file name doesn’t make any sense there. If you’re making use of quality levels you could check in those ini files.

I would normally recommend launching the editor in debug mode and put a breakpoint at the ensure call on line 3357 of ConfigCacheIni.cpp to see what is making the call, but I’m not sure if that would work when packaging (a separate process I think).

If you’re feeling adventurous, you could change line 3357 of Runtime/Core/Private/Misc/ConfigCacheIni.cpp to be something like:

					ensureMsgf(false, TEXT("The ini file '%s' set by %d tries to set the console variable '%s' marked with ECVF_Cheat, this is only allowed in consolevariables.ini (was always like this in Shipping / Test but the ensure/message is new)"),
						IniFile, SetBy, Key);

and recompile the engine. The SetBy would give who is trying to make the change, and you can compare that integer to the EVCF_SetByxxxxx values in Runtime/Core/Public/HAL/IConsoleManager.h starting on line 80.

I tried doing a full rebuild on Shipping, but the error is still showing up, which makes no sense to me if it shouldn’t even be checking that on shipping builds. I also turned all the Engine Scalability settings to minimum, to no avail. I’m going to keep looking into the other options you mentioned, but if you have any further ideas, please let me know.

And again, thank you so much for your time and patience. It’s been a huge help.

Did you ever figure this out? I’m having the same issue on a 4.14 build.

I was able to fix this by doing a search on all the .ini files in my project. There was an intermediate config file and another engini.ini that had showflag.decals = 0 as a line. I deleted those two lines and that compile error went away. My project was originall 4.12 → converted to 4.13 → converted to 4.14 and set up according the VR guidelines.