UnrealGameSync Issues with Helix Core Cloud

Unreal Engine 5.3.2 from source
P4V: 2024.1/2591061

Our Perforce server is hosted on Helix Core Cloud, and we are attempting to set up UnrealGameSync following this blog. Upon attempting to login and "Enter the password for user on server , it keeps failing with “Authentication failed.” although credentials are correct. Any ideas what could be happening here? When running UnrealGameSyncLauncher from Visual Studio and debugging, we see the following exceptions occurring:

First, upon opening and it fetches initial login state:
{Failed: Your client does not support Helix Core Cloud. Upgrade to version 2021.2/2201121 or later. (Generic=Usage)}

Then, after inputting password:
{Failed: SSL receive failed.read: The system cannot find the file specified. : WSAECONNABORTED (Generic=Comm)}

Our depot is setup and configured properly and we’ve populated it with the engine source and game module with no issues logging in or connecting via P4V.

We’ve tried other versions of the p4 client tools including the one listed above, and on multiple team member machines and networks, to no avail. We filed a support ticket with Helix Core Cloud since it seems like an SSL cert issue, but asking here in case there are issues with UGS and UE’s P4 frameworks specifically.

Hi!

I’m not sure if you’ve heard back from our support team yet. If not, I hope I can help you (and potentially others who run into this problem), since I wrote the error message from Helix Core Cloud that you encountered. :slight_smile:

You are right that it is an SSL/TLS issue. And specifically it is that Helix Core Cloud requires SNI (Server Name Indication - Wikipedia), but older versions of the P4 client do not support it.

UE has an “old” P4 client library (2018.1) embedded in it. For UGS, it uses that by default and only falls back to using the system-installed P4 CLI tools in certain circumstances. The good news is that you can simply modify the embedded client class to report that it is never supported and UGS should automatically switch to the P4 CLI you have installed instead.

In this function, NativePerforceConnection.IsSupported():

https://github.com/EpicGames/UnrealEngine/blob/16dc333db3d6439c7f2886cf89db8907846c0e8a/Engine/Source/Programs/Shared/EpicGames.Perforce/NativePerforceConnection.cs#L354

Replace the entire body with a return false; statement and recompile.

We have a ticket in our backlog to upstream a newer version of the P4 API client to UE, but we haven’t had time to dig into it yet. However I’ll make sure that it’s noted that we’ve had multiple customers experience this issue now! In the mean time, my apologies for the inconvenience, and let me know if you have any issues with this solution. Hope you have lots of success with your game!

Can you +1 from us when feeding back to P4, we have hit the same issue after building UGS and trying to log in with correct Perforce details.

I will do that, and we’ll try to get it a much higher priority. Thanks for letting me know!

Quick update for y’all. I spent some time this week investigating the problem and found myself unable to reproduce it, because, as it turns out, Epic has already updated the P4 client version in the ue5-main (UE 5.5) branch: https://github.com/EpicGames/UnrealEngine/commit/70b1b9ffff1b8e3559de97ebac01610f0ea12b8f

I doubt this will be backported to UE 5.4 or earlier officially, but the change looks to be self-contained such that you could probably pull in the patch to your own copy of UE if, for some reason, you want to use the native client instead of the external executable.