Problem
Compilation of Unreal Engine projects intermittently fails with the following errors:
c1xx: error C3859: Failed to create virtual memory for PCH
c1xx: note: the system returned code 1455: The paging file is too small for this operation to complete.
c1xx: fatal error C1076: compiler limit: internal heap limit reached
Errors occur on certain translation units while others succeed. Rebuilding the failed units typically completes successfully.
Cause
The errors are caused by system commit reaching the commit limit, possibly due to high parallel job count during compilation and/or other memory-consuming processes or hidden resource users on the system (e.g., virtual machines or containers that are not visible in standard Task Manager views).
While a significant free physical RAM remains might be seen as free in Task Manager, still the high system commit usage prevents the compiler from allocating required memory.
Resolution
There are several ways to workaround avoid the system commit limit overhead:
- Reduce the number of parallel compilation jobs:
-
Configure the
MaxParallelActionsvalue in the BuildConfiguration.xml file, for example:<?xml version="1.0" encoding="utf-8" ?> <Configuration xmlns="https://www.unrealengine.com/BuildConfiguration"> <BuildConfiguration> <MaxParallelActions>22</MaxParallelActions> </BuildConfiguration> </Configuration> - Lowering this value will reduce peak system memory usage and help avoid commit limit errors.
-
- Increase the paging file size. For example, set the Initial Size (MB) to 0.5x of Physical RAM and the Maximum Size (MB) to 1x of physical RAM. The System Commit is in fact Physical RAM + Paging file size. So, increasing the Paging file size increases the System Commit limit (Windows: System -> About -> Advanced system settings -> Advanced tab -> Performance -> Settings -> Advanced -> Virtual memory -> Change).
Note: Increasing Physical RAM is also a possible solution. - Close unnecessary applications and background processes that consume system memory during compilation.
- Reboot Windows when the issue persists after closing unnecessary applications. A restart releases committed memory held by user-mode processes and resets long-running processes that may have leaked or retained memory. This can temporarily resolve the problem, but it does not address the underlying causes
- Review the system for hidden memory consumers such as virtual machines, Docker containers, or Windows Subsystem for Linux (WSL), as these may not appear in Task Manager. Use tools like RAMMap to identify total memory allocation breakdowns. Stop those you don't need at the moment;
References:
Comments
0 comments
Please sign in to leave a comment.