5.8 - Setup.bat doesn't complete non-interactively

When running Setup.bat non-interactively it will stall and fail to complete.

If run interactively it will show a popup, seemingly from the UnrealVersionSelector? (At least with the same text).

File Types
Register Unreal Engine file types?
Yes No

The last output from our CI pipeline is “Installing Game Input Redistributable for Engine…”. I can see that the GameInputRedist.msi is passed the /quiet flag,

start /wait Engine\Extras\Redist\en-us\GameInputRedist.msi /quiet /norestart

I’m not sure where the code GameInputRedist.msi is so I can’t investigate further into what is causing this to happen.

[Attachment Removed]

Steps to Reproduce
* Run Setup.bat non-interactively on a machine that hasn’t run it before (eg. As part of a CI pipeline)

* Notice that it never completes

[Attachment Removed]

Hello!

Have you checked the Task Manager to see what is running? There are 3 possible places where the process is stuck based on the output you are getting:

  1. GameInputRedist.msi
  2. UnrealVersionSelector-Win64-Shipping.exe
  3. An error happened and Setup.bat is stuck on line 43 (pause)

As you mention the UVS prompt for file association, my guess would be that this is the actual problem. I recommend modifying setup.bat and change the argument for UnrealVersionSelector-Win64-Shipping.exe to : /register /unattended.

Regards,

Martin

[Attachment Removed]

Thanks for confirming the problem. I’m not sure there is a reason not to have the unattended argument in that script considering that the other 2 installers are doing similar (/quiet).

I’ll get this fixed in future releases of the engine.

[Attachment Removed]

Thank you.

A closer inspection of Setup.bat shows that there is an echo before installing vc_redist and GameInputRedist but not one for UnrealVersionSelector-Win64-Shipping which is why I was initially suspect it was related to GameInputRedist.

Using the /unattended arg works. Ideally the unattended arg is added conditionally depending on if Setup.bat was run unattended but since Windows doesn’t have good auto detection of “was this run unattended” I might make a divergent change to check for an “UNATTENDED” flag being passed to Setup.bat and conditionally pass that through to UnrealVersionSelector-Win64-Shipping so it can work in our CI pipeline (passing through UNATTENDED to Setup.bat) and when team members double click it locally.

Do you think there is a good reason that running Setup.bat shouldn’t run UnrealVersionSelector-Win64-Shipping with the unattended flag always?

[Attachment Removed]