Troubleshooting
How to fix common problems.
When a value is not what you expect, check the [VersionForge] lines in the build log first. They show where each value was captured from and report any problems. See Reading the build log.
Build number is 0 in a packaged game
| Cause | Fix |
|---|---|
| The game was packaged outside CI, so it was treated as a local build. | Package on your CI system, or pass -BuildNumberOverride=<number>. |
| The source is Auto Detect and your CI system wasn't recognized. | Set the source to your CI system if it's listed and ensure the Environment Variable is correct. Otherwise set the source to Environment Variable or Command Line Argument and configure it. |
| The source is Environment Variable, and the variable isn't defined or isn't a number. | Define the variable in your build environment, with the same name set in Build Number Env Var. |
| The source is Command Line Argument, and the argument wasn't passed. | Pass the argument with the same name set in Build Number Arg Name, for example -BuildNumber=418. |
| Compiling and packaging ran on different machines, and the build values file didn't get copied. | Tag the file in your compile node. See Distributed builds. |
See Build number for more details.
Changelist is empty in a packaged game
| Cause | Fix |
|---|---|
| The build was not provided a build number and ran as a local build. | Ensure a build number is provided, see Local Build and Build number. |
| Changelist Source is Auto Detect and no Perforce or Unity Version Control variable was set. | Set P4_CHANGELIST or PLASTICSCM_CHANGESET_ID in your build environment. |
The source is a git option, and git isn't on the PATH or the project folder isn't a git repository. | Put git on the PATH, and run the build from a git workspace. |
| The source is Environment Variable, and the variable isn't defined. | Define the variable, with the same name set in Changelist Env Var. |
| The source is Command Line Argument, and the argument wasn't passed. | Pass the argument with the same name set in Changelist Arg Name, for example -Changelist=98765. |
| Compiling and packaging ran on different machines, and the build values file didn't get copied. | Tag the file in your compile node. See Distributed builds. |
See Changelist for more details.
The build date is wrong or differs between targets in a packaged game
| Cause | Fix |
|---|---|
| Build Date Source is Now, and each target compiled at a different time. A client and a server, or several platforms, get different dates. | Provide every target the same timestamp. See Give an entire build chain the same timestamp. |
| The build was not provided a build number and ran as a local build (the date shows midnight UTC of the current date.) | Ensure a build number is provided, see Local Build and Build number. |
| The date is 1970. Compiling and packaging ran on different machines, and the build values file didn't get copied. | Tag the file in your compile node. See Distributed builds. |
The date from the environment variable, command line argument, or -BuildDateOverride= isn't a valid date. Version Forge logs a warning and uses the current time instead. | Use yyyyMMdd, yyyy-MM-dd, or ISO 8601, for example 2026-10-07T14:30:00Z. |
| The date is a day ahead or behind your local date. | The build date is UTC. |
See Build date for more details.
No version file in the package
| Cause | Fix |
|---|---|
| Write Version File is disabled. | Turn it on under Build Artifact in the Project Settings. |
| The build was not provided a build number and ran as a local build. | Ensure a build number is provided, see Local Build and Build number. |
| Compiling and packaging ran on different machines, and the version file didn't get copied. | Tag the file in your compile node. See Distributed builds. |
See Version file for more details.
A client cannot join a server
| Cause | Fix |
|---|---|
The network version includes {platform}, so a Windows client is refused by a Linux server. Full Version always includes it. | Use a format template without {platform}. |
The network version includes {config}, so a Development client is refused by a Shipping server. | Use a format template without {config}. |
The network version includes {date}, and the client and server were compiled at different times. | Use a format template without {date}, or ensure every target has the same timestamp. |
| The client and server have different build numbers. | Build the client and the server in the same CI run. |
See Network version for more details.
iOS or Android sync fails or does nothing
| Cause | Fix |
|---|---|
| The build was not provided a build number and ran as a local build. | Ensure a build number is provided, see Local Build and Build number. |
The build failed with a [VersionForge] error that says the source "did not resolve to a positive number". The variable or argument is missing, the changelist isn't numeric, or the build number is 0. | Provide a number from the source you chose. See Build number sources. |
The build failed because Config/DefaultEngine.ini is read-only. | Check the file out of source control or make it writable. |
Packaging warns about the config file
Unreal 5.8 and later print this warning when you package:
The config file '<Project>/Config/DefaultVersionForge.ini' will be staged, but is not explicitly allowed or denied.To silence the warning, add the following to your project's Config/DefaultGame.ini file, replacing <Project> with your project's name, for example MyGame/Config/DefaultVersionForge.ini:
[Staging]
+AllowedConfigFiles=<Project>/Config/DefaultVersionForge.ini
