UE 5.8 installed builds reject plugin binaries from earlier 5.8.x patch releases (BuildId mismatch) — regression vs 5.7

Since 5.8, a custom installed build of the engine refuses to load precompiled plugin binaries that were built against a different patch version of the same minor release. Plugins compiled against 5.8.0 or 5.8.1 fail to load in our 5.8.2 installed build.

This is despite BuildId and Changelist are set to 56702186 and CompatibleChangelist being unchanged across the whole 5.8 (55116800) originates from 5.8.0 and is identical to the CompatibleChangelist in the official installed build of 5.8.2 from the launcher. All engine modules have the correct BuildId “56702186” after compilation.

We did not see this in earlier releases — e.g. plugins built against 5.7.0 loaded fine in a 5.7.1 installed build. The launcher-distributed build of 5.8.2 also does not appear to exhibit this, which suggests we are missing a step or an option in our installed-build process.

Expected behavior

Plugin binaries built against 5.8.0/5.8.1 load in a 5.8.2 installed build, as was the case for patch upgrades in 5.7 and earlier — particularly when CompatibleChangelist is identical across all three patch releases.

Observed behavior

Opening any project against our 5.8.2 installed build produces the “Missing Modules” dialog:

The following modules are missing or built with a different engine version:

…

Engine modules cannot be compiled at runtime. Please build through your IDE.

The modules are present on disk; the BuildId recorded in their .modules manifests does not match the engine’s but is equal or higher then 55116800 (5.8.0).

Steps to reproduce

  1. Compile https://github.com/EpicGames/UnrealEngine/releases/tag/5\.8\.2\-release with the command below and using our Engine/Build/Build.version.
  2. Install a plugin whose binaries were compiled against 5.8.0 or 5.8.1 (.modules manifest carries that release’s BuildId).
  3. Open any project with that engine build. → Missing Modules dialog, plugin does not load.

Our build command

Engine\Build\BatchFiles\RunUAT.bat BuildGraph -target="Make Installed Build Win64" -script=Engine/Build/InstalledEngineBuild.xml -set:WithFullDebugInfo=true -set:HostPlatformOnly=true -set:WithDDC=true -set:GameConfigurations="Development;DebugGame"

Engine modifications

Our source changes are confined to path tracing or other rendering features. Nothing touches core module or API layout, so we do not believe there is a genuine binary-compatibility difference. On that basis we set BuildId in Engine/Build/Build.version to match the official launcher build of the same version. Engine/Build is otherwise unmodified.

Engine/Build/Build.version:

{
	"MajorVersion": 5,
	"MinorVersion": 8,
	"PatchVersion": 2,
	"Changelist": 56702186,
	"CompatibleChangelist": 55116800,
	"IsLicenseeVersion": 0,
	"IsPromotedBuild": 0,
	"BranchName": "+++UE5+UPP-5.8",
	"BuildId": "56702186"
}

Current workaround

Either rebuild every plugin from source (not possible where we only have binaries), or hand-edit BuildId in each plugin’s .modules file after every engine patch. Both are error-prone and do not scale across our plugin set.

We also tried to change the “IsPromotedBuild” to 1 but it did not helped at all. Are we doing something wrong when building the engine or is the problem somewhere else?

Hello! Manually setting the Build ID is generally not recommended in the documentation, as it bypasses the compatibility checks.

I’m not sure if you’ve tried this already, but I would recommend leaving this out and trying again with the IsPromotedBuild flag set.

https://dev.epicgames.com/documentation/unreal-engine/how-to-version-binaries-in-unreal-engine

Could you please try the following setup and let me know how the build goes?

  1. Remove the hardcoded BuildId from Engine/Build/Build.version.
  2. Set IsPromotedBuild to 1.
  3. Leave Changelist as 56702186.
  4. Leave CompatibleChangelist as 55116800.
  5. Rebuild and confirm the BuildId in Engine/Binaries/Win64/UnrealEditor.modules shows 55116800.

If this fails, could you please confirm the BuildIds from the failing .modules files?

Update: Another approach would be to set the BuildId to 55116800, instead.

You shouldn’t need the IsPromotedBuild flag in this scenario, and the plugins should load.

Hi [Content removed] and thank you!

removing the Build ID works. Now after the compilation no matter what the Changelist number is, all the .modules files have BuildId set to CompatibleChangelist value (55116800). So any new update will work.