How to debug when UBT breaks with literally 2000 engine file errors.

Every so often while while working on my project I’ll do something that completely breaks the entirety of UBT. When i look at the \AppData\Local\UnrealBuildTool\Log.txt file it’s filled with thousands of lines of random errors for core engine files I’ve not even opened let alone edited.

What actions on my part could be causing this behavior? The log file is not helpful in this instance as it doesn’t indicate that there’s an error in one of my files.

In the past the only recovery method was to revert any edits from the last day, delete the .vs, Binaries, DerivedDataCache, Intermediate, Saved, .sln, and run a verify from the launcher.

Truncated copy of log file:

Compiler: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\bin\Hostx64\x64\cl.exe
Linker: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\bin\Hostx64\x64\link.exe
Library Manager: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\bin\Hostx64\x64\lib.exe
Resource Compiler: C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x64\rc.exe
Using EngineIncludeOrderVersion.Unreal5_0 for target VR_BaseEditor.Target.cs
UnrealHeaderTool needs to run because SavedTimestamp is older than HeaderFileTimestamp (D:\00_ Unreal Projects\VR_Base\Source\VR_Base\Content\Scripts\UI\PaletteColors.h) for module VR_Base
Parsing headers for VR_BaseEditor
  Running Internal UnrealHeaderTool "D:\00_ Unreal Projects\VR_Base\VR_Base.uproject" "D:\00_ Unreal Projects\VR_Base\Intermediate\Build\Win64\VR_BaseEditor\Development\VR_BaseEditor.uhtmanifest" -WarningsAsErrors -installed
Step - Exports
       Exporter Stats skipped
       Exporter Json skipped
       Running exporter CodeGen
Total of 0 written
Reflection code generated for VR_BaseEditor in 0.8637086 seconds
UnrealEd SharedPCH - Could not find include directory for 'sal.h' found in 'C:\Program Files\Epic Games\UE_5.3\Engine\Source\Runtime\Core\Public\Windows\WindowsPlatform.h'.

/* Truncated 2,752 errors from files i didn't even know existed */
C:\Program Files\Epic Games\UE_5.3\Engine\Source\Runtime\Slate\Public\Widgets\Input\SSpinBox.h(1256): fatal error C1003: error count exceeds 100; stopping compilation
[2/5] Compile [x64] Module.VR_Base.2.cpp
Total time in Parallel executor: 8.90 seconds
Total execution time: 12.32 seconds
CompilationResultException: Error: OtherCompilationError
   at UnrealBuildTool.ActionGraph.ExecuteActionsAsync(BuildConfiguration BuildConfiguration, List`1 ActionsToExecute, List`1 TargetDescriptors, ILogger Logger, IActionArtifactCache actionArtifactCache) in C:\Program Files\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\System\ActionGraph.cs:line 417
   at UnrealBuildTool.BuildMode.BuildAsync(TargetMakefile[] Makefiles, List`1 TargetDescriptors, BuildConfiguration BuildConfiguration, BuildOptions Options, FileReference WriteOutdatedActionsFile, ILogger Logger) in C:\Program Files\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\Modes\BuildMode.cs:line 801
   at UnrealBuildTool.BuildMode.BuildAsync(List`1 TargetDescriptors, BuildConfiguration BuildConfiguration, ISourceFileWorkingSet WorkingSet, BuildOptions Options, FileReference WriteOutdatedActionsFile, ILogger Logger, Boolean bSkipPreBuildTargets) in C:\Program Files\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\Modes\BuildMode.cs:line 411
   at UnrealBuildTool.BuildMode.ExecuteAsync(CommandLineArguments Arguments, ILogger Logger) in C:\Program Files\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\Modes\BuildMode.cs:line 252
   at UnrealBuildTool.UnrealBuildTool.Main(String[] ArgumentsArray) in C:\Program Files\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\UnrealBuildTool.cs:line 659
WriteFileIfChanged() wrote 0 changed files of 143 requested writes.
Timeline:

By working through each line in the 6 files I edited today commenting them in/out one at a time I’ve determined the following to cause the issue.

WTF.h

UFUNCTION(BlueprintCallable, Category = "Appearance")
void SetColorAndOpacity(FSlateColor InColorAndOpacity);

WTF.cpp

void UEnhancedRichText::SetColorAndOpacity(FSlateColor InColorAndOpacity) {

}

If i paste that into notepad++ there aren’t any non-renderable characters i can see.

This is still a major production-breaking issue. We’d love some input from the devs, QA, anyone with insight into UBT.