Game Crash on "Create Game" Linux

Hi All, I'm getting the errors below with my new/clean install.
Ubuntu 20.04: Steam: Proton: SupCom + FA: FA is tested and working like a dream.
FAF Java Client
Java-15-oracle is now Java-17-oracle; 15 has been removed as it is end of life.
I had to edit faf-client and replace 15 with 17 in two places; FAF-client is working and I'm logged in.

Click on a map and create game, create; I get the following errors;

java.util.UnknownFormatConversionException: Conversion = ' '
at java.base/java.util.Formatter.parse(Formatter.java:2750)
at java.base/java.util.Formatter.format(Formatter.java:2671)
at java.base/java.util.Formatter.format(Formatter.java:2625)
at java.base/java.lang.String.format(String.java:4140)
at com.faforever.client.fa.LaunchCommandBuilder.build(LaunchCommandBuilder.java:192)
at com.faforever.client.fa.ForgedAllianceService.startGameOnline(ForgedAllianceService.java:79)
at com.faforever.client.game.GameService.lambda$startGame$37(GameService.java:604)
at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:646)
at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2147)
at com.faforever.client.fa.relay.ice.IceAdapterImpl.lambda$start$7(IceAdapterImpl.java:221)
at java.base/java.lang.Thread.run(Thread.java:833)

I suspect this is Java-17-oracle related but any help would be appreciated.

Its not Java-17 related.

I think it fails because your launch command ("Command line format for executable" in settings) is missing %s (this part of the string will be replaced with the .exe location when starting a game).

Thanks Katharsas.

I've changed that field to blank was "PROTON_NO_ESYNC=1 PROTON_NO_FSYNC=1 %command% /windowed 1920 1080"
but still failing to launch FA.

See the log here;
2021-11-13 16:38:48.491 INFO 51127 --- [lication Thread] com.faforever.client.update.Version : fromVersion '1.4.6' is not newer than toVersion '2021.11-alpha-4'. No update is required.
2021-11-13 16:38:48.519 INFO 51127 --- [lication Thread] com.faforever.client.user.UserService : Logging in with refresh token
2021-11-13 16:38:48.916 INFO 51127 --- [tor-tcp-epoll-2] com.faforever.commons.lobby.FafLobbyApi : Connected to lobby.faforever.com on port 8002
2021-11-13 16:38:50.870 INFO 51127 --- [lication Thread] com.faforever.client.update.Version : fromVersion '2021.10' is not newer than toVersion '2021.11-alpha-4'. No update is required.
2021-11-13 16:39:05.335 INFO 51127 --- [pool-3-thread-3] c.f.c.patch.GameBinariesUpdateTaskImpl : Updating binaries to 3724
2021-11-13 16:39:05.415 INFO 51127 --- [ Thread-41] c.f.client.fa.relay.ice.IceAdapterImpl : Starting ICE adapter with command: [/usr/lib/jvm/java-17-oracle/bin/java, -jar, %USER_PROFILE%/Games/faf-client-2021.11.0-alpha4/natives/faf-ice-adapter.jar, --id, 260187, --login, Zarrex, --rpc-port, 59093, --gpgnet-port, 8879]
2021-11-13 16:39:05.731 INFO 51127 --- [ Thread-41] c.f.client.fa.ForgedAllianceService : Starting Forged Alliance with command: [%USER_PROFILE%/.faforever/bin/ForgedAlliance.exe, /init, init.lua, /nobugreport, /log, %USER_PROFILE%/.faforever/logs/game_15710019.log, /gpgnet, 127.0.0.1:8879, /mean, 1500.0, /deviation, 500.0, /savereplay, gpgnet://127.0.0.1:39905/15710019/Zarrex.SCFAreplay, /country, GB, /numgames, 0, /numgames, 0] in directory: %USER_PROFILE%/.steam/steam/steamapps/common/Supreme Commander Forged Alliance/bin
/home/andyh/.faforever/bin/ForgedAlliance.exe: 1: MZ����@0��: not found
/home/andyh/.faforever/bin/ForgedAlliance.exe: 1: Syntax error: word unexpected (expecting ")")
2021-11-13 16:39:05.733 INFO 51127 --- [onPool-worker-6] com.faforever.client.game.GameService : Forged Alliance terminated with exit code 2
2021-11-13 16:39:05.753 WARN 51127 --- [tor-tcp-epoll-2] c.f.client.fa.relay.ice.IceAdapterImpl : Ignoring call to ICE adapter as we are not connected: setIceServers([[{credentialType=token, urls=[turn:coturn-eu-1.supcomhub.org?transport=tcp, turn:coturn-eu-1.supcomhub.org?transport=udp, stun:coturn-eu-1.supcomhub.org], credential=cjzETqLAtXQs2l/KeckOmCGSnp4=, username=1636907945:260187}, {credentialType=token, urls=[turn:faforever.com?transport=tcp, turn:faforever.com?transport=udp, stun:faforever.com], credential=cjzETqLAtXQs2l/KeckOmCGSnp4=, username=1636907945:260187}, {credentialType=token, urls=[turn:faf.mabula.net?transport=tcp, turn:faf.mabula.net?transport=udp, stun:faf.mabula.net], credential=XK0B5Sykd4Q9/7GHfRr5Jtmeamw=, username=1636907945:260187}]])

In FAF-Clinet, Settings, Forged Alliance Forever I have;
Game Location: /home/{UserID}/.steam/steam/steamapps/common/Supreme Commander Forged Alliance
Command line Format for Exe: %s / Blank
Exe Directory: /home/{UserID}/.steam/steam/steamapps/common/Supreme Commander Forged Alliance/bin
Automatic Map download: Enabled

Try inserting path to wine executable between PROTON_NO_FSYNC and %command%.

That’s the wrong command. You need to change the one in the client settings to "%s" not the one in the steam settings

@mazornoob

Thank you, however I'm not using WINE. Steam only (with Proton).

Proton is just wine plus some extra stuff, so yea you are using it.

@askaholic

Thank you; I have tried 'blank' and "%s" neither worked.
Just retried, to be sure, and no neither worked.
"Exit code 2"

@askaholic
Thanks for the correction. I thought Proton was Steam/Value's API that could work with WINE, not that it was an extension of it.
Do I need to install wine ? Typing # wine or # wine --help certainly confirms that WINE is not installed.

@Zarrex can you post screenshots of your launch command settings from the FAF client and steam?

All of is kind of confusing for me, there is exactly one location where %s works, which is inside the FAF client settings under "Command line format for executable".

When the client starts the game, it will replace %s with the path to the FA executable. You can modifiy the command so the client adds additional parameters, for example %s /nosound should start the game with /nosound parameter. I have no idea what %command% is so i cannot help with that.

Then there is this part of your log:

/home/andyh/.faforever/bin/ForgedAlliance.exe: 1: MZ����@0��: not found
/home/andyh/.faforever/bin/ForgedAlliance.exe: 1: Syntax error: word unexpected (expecting ")")

Is this really what is inside the log? Its better to post the log as file attachment so we know if this is a forum problem with encoding or if that is actually in the log. Btw the forum uses markdown, so you can use backticks ` to make it clearer when you cite a value.

Hi there, same problem here, on ubuntu(kubuntu) 22.10:

2023-01-04 12:06:32.903 INFO 37568 --- [r-http-epoll-16] c.f.client.fa.ForgedAllianceService : Starting Forged Alliance with command: [%USER_PROFILE%/.faforever/bin/FAFDebugger.exe, %USER_PROFILE%/.faforever/bin/ForgedAlliance.exe, /init, init.lua, /nobugreport, /log, %USER_PROFILE%/.faforever/logs/game_18912593.log, /gpgnet, 127.0.0.1:40099, /mean, 1485.16, /deviation, 446.046, /savereplay, gpgnet://127.0.0.1:35593/18912593/lemorragia.SCFAreplay, /country, IT, /numgames, 1, /numgames, 1] in directory: %USER_PROFILE%/.faforever/bin
/home/xyz/.faforever/bin/FAFDebugger.exe: 1: MZP���@▒��: not found
/home/xyz/.faforever/bin/FAFDebugger.exe: 2: /gpgnetPEL: not found
/home/xyz/.faforever/bin/FAFDebugger.exe: 9: Syntax error: word unexpected (expecting ")")

-fresh steam install, which works, with command params: PROTON_NO_ESYNC=1 PROTON_NO_FSYNC=1 %command% (the error is the same if i remove steam additional params)
-faforever installed with linux script https://github.com/FAForever/faf-linux
-try to launch a game, the game fails to starts (and in steam it shows that it is still running)
-if i try to run the run-offline executable, it crashes with this error

wineserver: using server-side synchronization.
wine: RLIMIT_NICE is <= 20, unable to use setpriority safely
wine: could not load kernel32.dll, status c0000135

it looks like wine/libraries is missing BUT idk if the offline executable needs to be launched with additional params (eg. PREFIX)

any ideas?

EDIT: i completely removed FA from steam, uninstalled wine and removed the ~/.wine, faforever and faf-linux folders...i rebooted and reinstalled everything from the beginning (steam, proton 7(not experimental) with params, faf-linux)...now run-offline works correctly and the game starts BUT the lobby still crashed creating a game

EDIT2: after a little bit of digging i discovered various issues with my system..i'll write them here for future users:

-i had a custom repo (ondrej/php) in my system which installed a library (libgd3) version which the amd64 and i386 had incompatibilities between each other (they coundn't be installed together)...i solved by 1) removing the custom repo 2) installing both the libraries needed for my system and wine (libgd3:i386 and libgd3:amd64) 3) installed wine 4) re-added the repo but i pinned/locked the packages installed previously (apt-mark) in their version from the base repo

-at the same time faf-linux creates a local wine prefix in its folder...once the wine installation was broken in the system, the setup script continued to fail until i deleted the faf-linux folder and cloned the repository again (and than executed the setup.sh script)

in synthesis, on ubuntu 22.04/22.10:
-be sure to install a working wine (32/i386)
-follow the instructions on faf-linux repository
-the game should work perfectly running the run-offline script

i'm still having issues running it from the lobby

@Katharsas
I had the same issue as you, and managed to get past it. In my case, it was because set-client-paths.sh had not been executed after my first log in. Hopefully this helps someone else with the issue.

@lemorragia
Perhaps you have the same problem. Try running the set-client-paths.sh shell script.

Having this issue as well, exit code 53 really is not very descriptive, for me anyway. @psyrg s post above did not help.

Help? Anyone?

The issue still persists. Someone please advice, I am locked out of playing the game as it stands for now.
I attached the log file the client creates when it fails.

client.log