Horde doesn't build Editor PCBs properly when not modifying project C++ (e.g. only modifying plugin C++)

The current situation is as such:

I have warnings in my project’s C++. When I modify project C++ and run incremental builds in Horde (that also generate Editor PCBs for Unreal Game Sync to retrieve them), Horde will rightfully report the build succeeded with Warnings. In this case, UGS also retrieves the editor PCBs successfully and non-engineers can launch the editor.

However, let’s say I only modify plugin C++ and then run the incremental build. Based on the logs, the project’s editor dlls aren’t recompiled again. And then Horde reports the build as succeeding without warnings (which isn’t right), and then UGS doesn’t sync PCBs properly and non-engineers are not even able to launch the editor.

I’m using all the default examples provided by Epic with very minimal changes (e.g. using BuildEditorAndTools.xml BuildGraph).

What is wrong with my setup that’s causing these problems?

So far, my workaround to this problem is to make a minor comment change in a project’s C++ file and then run the incremental build again. This forces the editor PCBs to be generated properly and we can continue work.

For anyone else who may have this problem, krzychos7 helped me with this problem on Unreal Source discord with this reply:

I assume you’re using Precompiled Binaries with UGS.
Do you have any Binaries folders inside plugins in the repository? If so, please remove them entirely from the repo (UGS will handle them locally on machines anyway). Alternatively, you can add a step to the Build Graph that deletes plugin binaries.
This applies to project binaries as well.

With the above change, plugin DLL files get generated correctly now.

However, i still seem to be having a problem whereby Incremental builds don’t run properly when not modifying project C++ files. For example if I modify a plugin’s uplugin file only, Horde incremental build doesn’t rebuild PCBs properly. (It reports success when it should report warning due to the warnings in my game code)

I’m still having to rely on the workaround of making a minor edit to a C++ file (e.g. edit a comment) to force the build to run properly…