4.22 UnrealHeaderTool getting called every build, even if there are no changes

I was having the same issue. I’ve fixed this by opening the following file in a text editor and saving over itself, giving it a newer last modified timestamp:

UE_4.22\Engine\Binaries\Win64\UnrealHeaderTool.target

Build again, UHT may run once, then following that the issue should be gone - UHT will only run if it actually needs to.

Hope this helps.