Pleut / abiotic-factor-linux-docker

Docker container for an Abiotic Factor dedicated server using Wine
44 stars 10 forks source link

LogOnline: Warning: OSS: Async task 'FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0' failed in 15 #4

Open MrSnake0208 opened 4 months ago

MrSnake0208 commented 4 months ago

I still have this problem. LogOnline: Warning: OSS: Async task 'FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0' failed in 15

Pleut commented 4 months ago

As long as the -tcp argument is still in the entrypoint.sh in the start command, this will probably be a different problem. Have you opened the necessary ports (by default 27015 and 7777 UDP) in your firewall?

MrSnake0208 commented 4 months ago

Yes, I have already opened them, do you need me to open TCP?

MrSnake0208 commented 4 months ago

After changing the ports to 37304 and 38304, the error disappeared, but I am unable to connect directly via IP in the Steam server list

Pleut commented 4 months ago

Does the following message appear in the output after the start?:

LogOnlineSession: Warning: STEAM: Server setting ,StoryProgress_s:Tarasque overflows Steam SetGameTags call
LogOnlineSession: Warning: STEAM: Server setting ,ModifiedRuleset_i:3 overflows Steam SetGameTags call
LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now.
LogOnlineSession: Warning: STEAM: Server setting ,StoryProgress_s:Tarasque overflows Steam SetGameTags call
LogOnlineSession: Warning: STEAM: Server setting ,ModifiedRuleset_i:3 overflows Steam SetGameTags call

If so, you should be able to connect via IP:QueryPort. Otherwise, have a look at the server list ingame. The server should also appear there under the specified name. What also works is to add +connect IP:QueryPort as a start parameter in Steam. The game will then automatically connect to the server at startup.

MrSnake0208 commented 4 months ago

Yes, the following messages appear after startup, I tried +connect IP:QueryPort but it didn't work, should I send you my server IP? LogOnlineSession: Warning: STEAM: Server setting ,StoryProgress_s:Office overflows Steam SetGameTags call LogOnlineSession: Warning: STEAM: Server setting ,ModifiedRuleset_i:0 overflows Steam SetGameTags call LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now. LogOnlineSession: Warning: STEAM: Server setting ,StoryProgress_s:Office overflows Steam SetGameTags call LogOnlineSession: Warning: STEAM: Server setting ,ModifiedRuleset_i:0 overflows Steam SetGameTags call

Pleut commented 4 months ago

Yes, send me the IP. Maybe I will have more success connecting

MrSnake0208 commented 4 months ago

It's already quite late here, so I'm going to bed, sorry to trouble you!

Pleut commented 4 months ago

Nothing runs under the ports. Are you sure that the ports are open? Have you also adjusted the ports in the docker-compose file under both environment and ports, such as here:

services:
  abiotic-server:
    image: "ghcr.io/pleut/abiotic-factor-linux-docker:latest"
    restart: unless-stopped
    volumes:
      - "./gamefiles:/server"
      - "./data:/server/AbioticFactor/Saved"
    environment:
      - MaxServerPlayers=6
      - Port=38304
      - QueryPort=37304
      - ServerPassword=password
      - SteamServerName=Linux Server
      - UsePerfThreads=true
      - NoAsyncLoadingThread=true
      - WorldSaveName=Cascade
    ports:
      - "0.0.0.0:38304:7777/udp"
      - "0.0.0.0:37304:27015/udp"
MrSnake0208 commented 3 months ago

I made the changes, but then it started showing a failed issue. image image

PFCraft-box commented 1 month ago

I seem to have found a solution to the issue. By using TCPDUMP to analyze the communication packets, I discovered that in some specific network environments, the server fails to obtain the correct external IP. Adding the MULTIHOME startup parameter can solve this problem.

Here's the updated docker-compose.yml configuration:


services:
  abiotic-server:
    image: "ghcr.io/pleut/abiotic-factor-linux-docker:latest"
    restart: unless-stopped
    volumes:
      - "./gamefiles:/server"
      - "./data:/server/AbioticFactor/Saved"
    environment:
      - MaxServerPlayers=6
      - Port=38304
      - QueryPort=37304
      - ServerPassword=password
      - SteamServerName=Linux Server
      - UsePerfThreads=true
      - NoAsyncLoadingThread=true
      - WorldSaveName=Cascade
      - AdditionalArgs=-MULTIHOME=external_IP
    ports:
      - "0.0.0.0:38304:38304/udp"
      - "0.0.0.0:37304:37304/udp"
ZoidtheVoid commented 3 weeks ago

I seem to have found a solution to the issue. By using TCPDUMP to analyze the communication packets, I discovered that in some specific network environments, the server fails to obtain the correct external IP. Adding the MULTIHOME startup parameter can solve this problem.

This solution doesn't work for me. I set multihome to my servers external IP, but whenever I try to run the server I get the following error:

LogNet: Warning: Could not create socket for bind address *my IP*, got error WinSock: binding to port 7777 failed (5)
LogNet: Warning: Encountered an error while creating sockets for the bind addresses.

At first I thought it was due to using ufw, but even after disabling it for testing purposes I still get the same error. Not sure what else to do here, the IP is definitely correct and the server has worked before (without setting multihome), but after restarting it I got the Async task 'FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0' error out of nowhere. Didn't change anything in the meantime, just started happening randomly.

I've also found some posts regarding the same issue in other unreal games. Someone mentioned increasing the AsyncTaskTimeout via a server ini file, but I couldn't find anything like that in the server files. I also tried setting it via AdditionalArgs=-AsyncTaskTimeout=3600 in the docker compose file, but that doesn't work either.

kevinresol commented 3 weeks ago

Interestingly, the setup has been working fine (without -MULTIHOME) until some time around 2024-08-24T12:00:00Z. Now I am getting FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0, without any changes to the configurations

(It might be worth noting that Steam experienced downtime around 2024-08-24T10:00:00Z to 2024-08-24T12:00:00Z)

softashell commented 3 weeks ago

Adding AdditionalArgs=-ini:Engine:[OnlineSubsystemSteam]:AsyncTaskTimeout=360 gets past the FOnlineAsyncTaskSteamCreateServer async timeout for me. Default 15 seconds are not enough when steam is not doing too well.

kevinresol commented 3 weeks ago

If I understand correctly it will show the following message if the steam server is created successfully:

LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now.