HTML5 ClientTravelFailure

I believe I have found a bug in an online environment for map travel for HTML5 games. I have my game uploaded to my FTP and my dedicated server hosted by a third party. Note I am using a source built 4.19 Preview 4.

My login attempt to my third party is successful and it follows by opening the server address with the following command:

open http://serverip:port/

It connects and than attempts to open the map via this command:

LogNet: Browse: http:/Game/Maps/MapName

Which causes the following error to occur:

LogNet: Warning: Travel Failure: [ClientTravelFailure]: 

Notice where there is normally a reason for the failure after " [ClientTravelFailure]: " in this case it is blank. When I use a local environment, with the dedicated server on my PC and the HTML5Helper.exe I can connect and play with no issues. The command that is sent in that case is:

LogNet: Browse: 192.168.1.31//Game/Maps/MapName

So my conclusion is that there is a missing “/” in the browse request like so:

LogNet: Browse: http://Game/Maps/MapName

OR - add the ip address to the http://

LogNet: Browse: http://ipaddress:port//Game/Maps/MapName

OR remove the http:// and act like my local ip example above:

LogNet: Browse: ipaddress:port//Game/Maps/MapName

Would love some feedback on this and if there is anyway to manually fix in the source code on my end.

Anyone able to confirm or reproduce this bug? Would love to find out a possible source engine edit for a fix.

Hello,

We’ve recently made a switch to a new bug reporting method using a more structured form. Please visit the link below for more details and report the issue using the new Bug Submission Form. Feel free to continue to use this thread for community discussion around the issue.

https://forums.unrealengine.com/unreal-engine/announcements-and-releases/1410408-unreal-engine-bug-submission-form

Thanks

after re-reading your description a few times - i think there’s a basic misunderstanding of http and dedicated server connections.

when you are trying to connect to a dedicated server (i.e. the project.exe file) – this is NOT accessible as:

 open http://serverip:port/

the UE4 (game) network is not HTTP.

but, rather - you connect to the dedicated server with:

 open serverip:port

now, it sounds like you got the websocket netdriver for UE4 working.

that said, to play on your thirdparty dedicated server you would need to ensure you are connected to the external IP address:port – so, if your dedicated server is publicly accessible, excellent! all you need is:

 open serverip

but, if it is behind a port forwarding box, find out where your game’s port number is forwarded to and then open your connection to that value.

 open serverip:port

please see the following pages for more details:

So I think it is an odd question to describe and my suggested solution is very hypothetical, so I’m sending over a link to a development build. Keep the browser console open before clicking “Play Online” and you will have a better idea of what the issue is.

To be a bit more detailed:

  1. HTML5 build is uploaded to my ftp server.
  2. Dedicated server is uploaded to Playfab.

A) Using chrome/firefox I browse to my gamename.html file on my ftp server.
B) The game loads in the browser.
C) I click my “login” button to login in to playfab and on success, I have coded it to use the command. In a previous post which I can’t for the life of me find, an unreal staff member said this was the correct syntax:

open http://serverip:port

This is where I receive the ClientTravelFailure.

The open command is successful and according to the logs it does join the server but fails to find the map. This is where I noticed above there could be a missing “/” in the syntax. It attempts to open the map using

LogNet: Browse: http:/Game/Maps/MapName

When I “believe” it should be using:

LogNet: Browse: http://Game/Maps/MapName

I can have all of this working in a local build however (using HTML5Helper/Local Dedicated Server), as noted in the original post.

P.S. I upgraded to the official 4.19 release and I may have slightly different errors, trying to understand it all. You will see the console window and maybe have a better idea of what is going on.

oh, i see what might be happening…

what port # are you running your server on?

you may need to put that in for your WebSocketPort value in:

  • Engine/Config/BaseEngine.ini
  • [/Script/HTML5Networking.WebSocketNetDriver]
  • WebSocketPort=XXXX

and then, you can just use:

open serverIPaddress

no HTTP:// – just the IP address.

i will see if there’s an official way to do this on the fly (i.e. within your game’s blueprint or something – so that it doesn’t require you needing to have this in your config file…) – but, this should get you connected.

No luck on the config file change. I made the change (default was 8999 PlayFab seems to reliably be 9000 but they are AWS based so I do not know if that changes), recompiled both engine and project with VS and repackaged both client and server, reuploaded to FTP/Playfab. Without http:// in the open command I receive the following, which is the same as before.

Firefox can’t establish a connection to the server at ws://ipaddress:9000/.

I’m not sure why the ws:// comes in when there is no http://

Atleast with http:// I am able to connect to the server but the folder paths, such as where maps are stored (Content/maps/), appear to be affected by the http://, I think?

In the newproj-dev1/ link I sent you, you can see it does connect to the server but fails to find the map:

Browse: http:/Game/Maps/TreasureHunt
fbcfc074-067f-4440-802c-43a5b021e2e5:1:368107
[2018.03.26-21.15.49:780][515]LogNet: Browse: http:/Game/Maps/TreasureHunt
fbcfc074-067f-4440-802c-43a5b021e2e5:1:368107
LogNet: Warning: Travel Failure: [ClientTravelFailure]: 
fbcfc074-067f-4440-802c-43a5b021e2e5:1:368107

fbcfc074-067f-4440-802c-43a5b021e2e5:1:368107
Travel Failure: [ClientTravelFailure]: 
fbcfc074-067f-4440-802c-43a5b021e2e5:1:368107
[2018.03.26-21.15.49:780][515]LogNet: Warning: Travel Failure: [ClientTravelFailure]: 
fbcfc074-067f-4440-802c-43a5b021e2e5:1:368107
TravelFailure: ClientTravelFailure, Reason for Failure: ''
fbcfc074-067f-4440-802c-43a5b021e2e5:1:368107
[2018.03.26-21.15.49:782][515]LogNet: TravelFailure: ClientTravelFailure, Reason for Failure:

can you set the following:

  • Engine/Config/BaseEngine.ini
  • [/Script/HTML5Networking.WebSocketNetDriver]
  • WebSocketPort=9000

ws:// (which i’m sure you already know) stands for websocket – and the ws: standards is built on TOP of HTTP – which is probably why you were able to see it connect to :9000 successfully – but, you’re not seeing the communications go through. (or, maybe you are seeing the coms go through and the protocol part is messing up the load sequence as you’ve noted.)

after setting the config file – can you then try:

open serverIP:port

no http: nor ws: protocols – just IP address (and port #)

i’m thinking, after you set the config file – you probably don’t need the :port – but, it doesn’t hurt to try both ways.

Yes - this is what I had just tried. The Play Online button only runs “open serverIP”, the port wasnt necessary as you mentioned.

235202-capture2.png

dev1 is still using open http://x.x.x.x:9000

dev2 is using open x.x.x.x:8999

can you re-upload your package you just described here.

Sorry sent over dev3, I kept the others up for comparison purposes if we needed them. That uses the above screenshot.

it’s good to keep archives.

i just tried using dev3 and see a good open request

LogNet: Browse: xx.xx.xx.xx//Game/Maps/TreasureHunt

but, i do not see the results of the handshaking challenge (which needs extra debugging logging).

just out of curiosity – have you tried connecting to your playfab server using a windows client that’s also been setup to use the WebSocketNetDriver? this will tell me if this is a networking issue or something else. you can PM me the details.

Very strangely when i sat down to work on a logging issue (dedicated server on playfab does not add the .log extension to the file)… I was able to connect and open the map!

However integer overflow was causing crashing which is a previous issues I resolved through this post. I have dev4/ loaded with this change and I can connect with both Chrome and Firefox.

The problem now seems to be major lag or network performance issues.

Direct messaging you some log files but you should be able to see them yourself once logging in and viewing the browser console.

Also - I will update with a windows client test shortly.

good to hear that you got the connection working.

and from testing on my end – it looks like the crash you mentioned above… you fixed this too?

i’m able to run around, even pick up an item. :slight_smile:

can’t wait to see you all release this. good job!

Yes the integer overflow is resolved… or worked around atleast by enabling the “-s BINARYEN_TRAP_MODE=clamp” in HTML5 toolchain.cs

If you play on dev4/ it should be working with minimal issues and oddly enough today I’m not seeing a spam of network performance problems. If they continue I will open a different post for that.

EDIT: Nevermind - network performance issues are still here, after the game is on for a short period of time. I will open a new post for that.