Turnkey fails to verifysdk

I’m having an issue trying to get turnkey working on a machine that uses precompiled binaries from UGS and does not have access to /Engine/Source. Turnkey seems to run once on editor startup and a second time when I try to access the Platforms menu in the editor. Both of these instances result in failure with an error code of 1, which seems to mean “Unknown”.

At first turnkey was failing to find the build records in Intermediate/ScriptModules and failed compilation of Programs under the Source directory due to not having access to Source. I’ve since got the precompiled binaries to generate the missing records, but am still failing the build record validation check due to missing csproj files (found in Source/Programs) listed in the dependencies in the build records. Failing the validation check will also cause the build records to be deleted. Adding a “InstalledBuild.txt” file in my Build directory allows me to skip the validation check and gets turnkey to stop erroring, but I feel like this is more of a loop hole than a real solution. Is there any other way to get turnkey to run successfully without having access to Source, or is it required?

I’ve included a log of what my error output looks like below:

`Log started at 7/15/2025 3:38:06 PM (2025-07-15T22:38:06Z)
Starting AutomationTool…
Parsing command line: -ScriptsForProject=D:/Root/MyProject/MyProject.uproject Turnkey -utf8output -WaitForUATMutex -command=VerifySdk -ReportFilename=D:/Root/MyProject/Intermediate/TurnkeyReport_0.log -log=D:/Root/MyProject/Intermediate/TurnkeyLog_0.log -project=D:/Root/MyProject/MyProject.uproject -platform=all
Found project file: D:\Root\MyProject\MyProject.uproject
Found 1 scripts to execute:
Turnkey(utf8output, WaitForUATMutex, command=VerifySdk, ReportFilename=D:/Root/MyProject/Intermediate/TurnkeyReport_0.log, log=D:/Root/MyProject/Intermediate/TurnkeyLog_0.log, project=D:/Root/MyProject/MyProject.uproject, platform=all)
Running on Windows as a 64-bit process.
CWD=D:\Root
UnrealEngine ver. 5.6.0.0
Initializing script modules…
Loaded script module build record D:\Root\Engine\Intermediate\ScriptModules\Android.Automation.json
Loaded script module build record D:\Root\Engine\Intermediate\ScriptModules\Apple.Automation.json
Loaded script module build record D:\Root\Engine\Intermediate\ScriptModules\AutomatedPerfTesting.Automation.json
Loaded script module build record D:\Root\Engine\Intermediate\ScriptModules\AutomationScripts.Automation.json
Loaded script module build record D:\Root\Engine\Intermediate\ScriptModules\AutomationUtils.Automation.json

[Source\Programs\AutomationTool\Android\Android.Automation.csproj] Android.Automation.csproj not found
[Source\Programs\AutomationTool\Apple\Apple.Automation.csproj] Apple.Automation.csproj not found
[Plugins\Performance\AutomatedPerfTesting\Build\Scripts\AutomatedPerfTesting.Automation.csproj] AutomatedPerfTesting.Automation.csproj is newer than ......\Binaries\DotNET\AutomationTool\AutomationScripts\AutomatedPerfTesting\AutomatedPerfTesting.Automation.dll
[Source\Programs\AutomationTool\Scripts\AutomationScripts.Automation.csproj] AutomationScripts.Automation.csproj not found
[Source\Programs\AutomationTool\AutomationUtils\AutomationUtils.Automation.csproj] AutomationUtils.Automation.csproj not found

Load 0 projects time: 0.21 s
Generate build records 0 projects time: 0.00 s
Validate 0 projects time: 0.00 s
Unhandled exception: System.Exception: Found no script module records.
at AutomationToolDriver.Program.MainProc() in D:\Root\Engine\Source\Programs\AutomationTool\Program.cs:line 509

AutomationTool encountered an error before a log file was set, see ‘D:\Root\Engine\Programs\AutomationTool\Saved\Logs\ErrorLog.txt’ for more details
AutomationTool executed for 0h 0m 0s
AutomationTool exiting with ExitCode=1 (Error_Unknown)`

Steps to Reproduce
Start the unreal editor and/or navigate to the Platforms menu for an unreal project using precompiled binaries with no access to Source/Programs. After turnkey fails, it deletes the build records and causes future attempts to fail to find the build records and fails to compile the missing csprojs from Source/Programs.

Hi,

The UGS workflow expects that the source code will be available. Adding InstalledBuild.txt puts you in a weird spot where you are tricking the tools into thinking you are using an InstalledBuild which how we produce the Launcher builds. I guess this should be fine but the extra txt file might cause issues to anyone that flips between using the precompiled exe and generating them locally. That might not exist on your team.

Assuming that everyone using the PCBs will never need to compile, you should be ok with InstalledBuild.txt

Martin