Cannot execute binary file - game stopped working via steam

I’ve been using steam successfully for a while but it’s not the first time a game suddenly refuses to start without me changing or updating my system/steam configuration. It could be that steam auto-updated but I don’t think it did, the game worked less than 24h before.

This time it’s “Mini countries”, a game made with Unity with native linux support via Mono. I’ve been able to launch it a dozen of times, then not anymore. Running steam via CLI then starting the game gives the following log:

[badcold@i7-3770k:~]$ steam
steam.sh[8929]: Running Steam on nixos 23.11 64-bit
steam.sh[8929]: STEAM_RUNTIME is enabled automatically
setup.sh[9007]: Steam runtime environment up-to-date!
steam-runtime-identify-library-abi: Failed to execute child process "/sbin/ldconfig" (No such file or directory)
run.sh[9019]: steam-runtime-identify-library-abi --ldconfig-paths failed, falling back to ldconfig
run.sh[9019]: Warning: An unexpected error occurred while executing "/sbin/ldconfig -XNv", the exit status was 127
steam.sh[8929]: Steam client's requirements are satisfied
[2023-12-29 12:47:07] Startup - updater built Dec  8 2023 00:32:59
[2023-12-29 12:47:07] Startup - Steam Client launched with: '/home/badcold/.local/share/Steam/ubuntu12_32/steam'
12/29 12:47:07 Init: Installing breakpad exception handler for appid(steam)/version(1702079146)/tid(9045)
[2023-12-29 12:47:08] Loading cached metrics from disk (/home/badcold/.local/share/Steam/package/steam_client_metrics.bin)
[2023-12-29 12:47:08] Using the following download hosts for Public, Realm steamglobal
[2023-12-29 12:47:08] 1. https://client-update.akamai.steamstatic.com, /, Realm 'steamglobal', weight was 1000, source = 'update_hosts_cached.vdf'
[2023-12-29 12:47:08] 2. https://cdn.cloudflare.steamstatic.com, /client/, Realm 'steamglobal', weight was 1, source = 'update_hosts_cached.vdf'
[2023-12-29 12:47:08] 3. https://cdn.steamstatic.com, /client/, Realm 'steamglobal', weight was 1, source = 'baked in'
[2023-12-29 12:47:08] Verifying installation...
[2023-12-29 12:47:08] Verification complete

Steam logging initialized: directory: /home/badcold/.local/share/Steam/logs

/nix/store/i922kjr8b83ifdyfwi8fif6knrmjs146-dconf-0.40.0-lib/lib/gio/modules/libdconfsettings.so: wrong ELF class: ELFCLASS64
Failed to load module: /nix/store/i922kjr8b83ifdyfwi8fif6knrmjs146-dconf-0.40.0-lib/lib/gio/modules/libdconfsettings.so
XRRGetOutputInfo Workaround: initialized with override: 0 real: 0xe92107b0
XRRGetCrtcInfo Workaround: initialized with override: 0 real: 0xe920efa0
steamwebhelper.sh[9069]: Runtime for steamwebhelper: defaulting to /home/badcold/.local/share/Steam/ubuntu12_64/steam-runtime-heavy
steamwebhelper.sh[9069]: glibc >= 2.34, partially disabling sandbox until CEF supports clone3()
CAppInfoCacheReadFromDiskThread took 83 milliseconds to initialize
Steam Runtime Launch Service: starting steam-runtime-launcher-service
Steam Runtime Launch Service: steam-runtime-launcher-service is running pid 9194
bus_name=com.steampowered.PressureVessel.LaunchAlongsideSteam
BRefreshApplicationsInLibrary 1: 1ms
BuildCompleteAppOverviewChange: 438 apps
RegisterForAppOverview 1: 53ms
RegisterForAppOverview 2: 53ms
/bin/sh\0-c\0/home/badcold/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=1214180 -- /home/badcold/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- '/home/badcold/.local/share/Steam/steamapps/common/Mini Countries/Mini Countries.exe'\0
chdir "/home/badcold/.local/share/Steam/steamapps/common/Mini Countries"
ERROR: ld.so: object '/home/badcold/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/badcold/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/badcold/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/badcold/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
/home/badcold/.local/share/Steam/steamapps/common/Mini Countries/Mini Countries.exe: /home/badcold/.local/share/Steam/steamapps/common/Mini Countries/Mini Countries.exe: cannot execute binary file
Uploaded AppInterfaceStats to Steam

As a comparison, here is a working launch of Banner of Ruin, which also uses Unity + Mono:

[badcold@i7-3770k:~]$ steam
steam.sh[10893]: Running Steam on nixos 23.11 64-bit
steam.sh[10893]: STEAM_RUNTIME is enabled automatically
setup.sh[10971]: Steam runtime environment up-to-date!
steam-runtime-identify-library-abi: Failed to execute child process "/sbin/ldconfig" (No such file or directory)
run.sh[10983]: steam-runtime-identify-library-abi --ldconfig-paths failed, falling back to ldconfig
run.sh[10983]: Warning: An unexpected error occurred while executing "/sbin/ldconfig -XNv", the exit status was 127
steam.sh[10893]: Steam client's requirements are satisfied
[2023-12-29 12:51:26] Startup - updater built Dec  8 2023 00:32:59
[2023-12-29 12:51:26] Startup - Steam Client launched with: '/home/badcold/.local/share/Steam/ubuntu12_32/steam'
12/29 12:51:26 Init: Installing breakpad exception handler for appid(steam)/version(1702079146)/tid(11009)
[2023-12-29 12:51:26] Loading cached metrics from disk (/home/badcold/.local/share/Steam/package/steam_client_metrics.bin)
[2023-12-29 12:51:26] Using the following download hosts for Public, Realm steamglobal
[2023-12-29 12:51:26] 1. https://client-update.akamai.steamstatic.com, /, Realm 'steamglobal', weight was 1000, source = 'update_hosts_cached.vdf'
[2023-12-29 12:51:26] 2. https://cdn.cloudflare.steamstatic.com, /client/, Realm 'steamglobal', weight was 1, source = 'update_hosts_cached.vdf'
[2023-12-29 12:51:26] 3. https://cdn.steamstatic.com, /client/, Realm 'steamglobal', weight was 1, source = 'baked in'
[2023-12-29 12:51:26] Verifying installation...
[2023-12-29 12:51:26] Verification complete

Steam logging initialized: directory: /home/badcold/.local/share/Steam/logs

/nix/store/i922kjr8b83ifdyfwi8fif6knrmjs146-dconf-0.40.0-lib/lib/gio/modules/libdconfsettings.so: wrong ELF class: ELFCLASS64
Failed to load module: /nix/store/i922kjr8b83ifdyfwi8fif6knrmjs146-dconf-0.40.0-lib/lib/gio/modules/libdconfsettings.so
XRRGetOutputInfo Workaround: initialized with override: 0 real: 0xe92107b0
XRRGetCrtcInfo Workaround: initialized with override: 0 real: 0xe920efa0
steamwebhelper.sh[11033]: Runtime for steamwebhelper: defaulting to /home/badcold/.local/share/Steam/ubuntu12_64/steam-runtime-heavy
steamwebhelper.sh[11033]: glibc >= 2.34, partially disabling sandbox until CEF supports clone3()
CAppInfoCacheReadFromDiskThread took 82 milliseconds to initialize
Steam Runtime Launch Service: starting steam-runtime-launcher-service
Steam Runtime Launch Service: steam-runtime-launcher-service is running pid 11154
bus_name=com.steampowered.PressureVessel.LaunchAlongsideSteam
BRefreshApplicationsInLibrary 1: 1ms
BuildCompleteAppOverviewChange: 438 apps
RegisterForAppOverview 1: 54ms
RegisterForAppOverview 2: 55ms
pressure-vessel-wrap[11605]: W: "/run/current-system/sw/bin/getent" is unlikely to appear in "/run/host"
pressure-vessel-wrap[11605]: W: Found more than one possible libdrm data directory from provider
/nix/store/i922kjr8b83ifdyfwi8fif6knrmjs146-dconf-0.40.0-lib/lib/gio/modules/libdconfsettings.so: undefined symbol: g_assertion_message_cmpint
Failed to load module: /nix/store/i922kjr8b83ifdyfwi8fif6knrmjs146-dconf-0.40.0-lib/lib/gio/modules/libdconfsettings.so
setlocale "en_SE.UTF-8": No such file or directory
pressure-vessel-locale-gen: Missing locale en_SE.UTF-8 (found in $LC_TIME)
pressure-vessel-locale-gen: Generating locale en_GB.UTF-8...
pressure-vessel-locale-gen: Generated locale en_GB.UTF-8 successfully
pressure-vessel-locale-gen: Generating locale en_SE.UTF-8...
[error] cannot open locale definition file `en_SE': No such file or directory
pressure-vessel-locale-gen: Unable to generate locale en_SE.UTF-8: 4
setlocale "en_SE.UTF-8": No such file or directory
pressure-vessel-locale-gen: Warning: en_SE.UTF-8 was generated but does not appear to work!
pressure-vessel-locale-gen: Generating locale en_US.UTF-8...
pressure-vessel-locale-gen: Generated locale en_US.UTF-8 successfully
pressure-vessel-adverb[11791]: W: Container startup will be faster if missing locales are created at OS level
fsync: up and running.
wine: RLIMIT_NICE is <= 20, unable to use setpriority safely
/bin/sh\0-c\0/home/badcold/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=1075740 -- /home/badcold/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- '/home/badcold/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/badcold/.local/share/Steam/steamapps/common/Proton 7.0'/proton waitforexitandrun  '/home/badcold/.local/share/Steam/steamapps/common/BannersOfRuin/BannersOfRuin.exe'\0
chdir "/home/badcold/.local/share/Steam/steamapps/common/BannersOfRuin"
ERROR: ld.so: object '/home/badcold/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/badcold/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/badcold/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/badcold/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/badcold/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
pressure-vessel-wrap[12160]: W: "/run/current-system/sw/bin/getent" is unlikely to appear in "/run/host"
pressure-vessel-wrap[12160]: W: Found more than one possible libdrm data directory from provider
/nix/store/i922kjr8b83ifdyfwi8fif6knrmjs146-dconf-0.40.0-lib/lib/gio/modules/libdconfsettings.so: undefined symbol: g_assertion_message_cmpint
Failed to load module: /nix/store/i922kjr8b83ifdyfwi8fif6knrmjs146-dconf-0.40.0-lib/lib/gio/modules/libdconfsettings.so
setlocale "en_SE.UTF-8": No such file or directory
pressure-vessel-locale-gen: Missing locale en_SE.UTF-8 (found in $LC_TIME)
pressure-vessel-locale-gen: Generating locale en_GB.UTF-8...
pressure-vessel-locale-gen: Generated locale en_GB.UTF-8 successfully
pressure-vessel-locale-gen: Generating locale en_SE.UTF-8...
[error] cannot open locale definition file `en_SE': No such file or directory
pressure-vessel-locale-gen: Unable to generate locale en_SE.UTF-8: 4
setlocale "en_SE.UTF-8": No such file or directory
pressure-vessel-locale-gen: Warning: en_SE.UTF-8 was generated but does not appear to work!
pressure-vessel-locale-gen: Generating locale en_US.UTF-8...
pressure-vessel-locale-gen: Generated locale en_US.UTF-8 successfully
pressure-vessel-adverb[12300]: W: Container startup will be faster if missing locales are created at OS level
fsync: up and running.
wine: RLIMIT_NICE is <= 20, unable to use setpriority safely
Setting breakpad minidump AppID = 1075740
Steam_SetMinidumpSteamID:  Caching Steam ID:  76561197987833093 [API loaded no]
Fossilize INFO: Overriding serialization path: "/home/badcold/.local/share/Steam/steamapps/shadercache/1075740/fozpipelinesv6/steamapprun_pipeline_cache".
GameOverlay: started '/home/badcold/.local/share/Steam/ubuntu12_32/gameoverlayui' (pid 12513) for game process 12445
12/29 12:51:58 Init: Installing breakpad exception handler for appid(gameoverlayui)/version(20231208003324)/tid(12513)
12/29 12:51:58 Init: Installing breakpad exception handler for appid(gameoverlayui)/version(1.0)/tid(12513)
Fossilize WARN: Sampler handle 0x00007f1bd8040080 is not registered.
It has either not been recorded, or it failed to be recorded earlier (which is expected if application uses an extension that is not recognized by Fossilize).
Fossilize WARN: Descriptor set layout handle 0x00007f1bd8044410 is not registered.
It has either not been recorded, or it failed to be recorded earlier (which is expected if application uses an extension that is not recognized by Fossilize).
Fossilize WARN: Pipeline layout handle 0x00007f1bd803ef70 is not registered.
It has either not been recorded, or it failed to be recorded earlier (which is expected if application uses an extension that is not recognized by Fossilize).

Which also contains the ld.so errors, so I don’t think it’s relevant.

I’ve tried reinstalling the game a few times. I’d rather not nuke my entire steam folder, any idea what else I could try?

Yes, this is just down to how steam injects their overlay, this happens with all steam games.

That should only happen if the architecture doesn’t match or such. Actually, given the .exe and lack of wine, is this executing the windows binary when it should be running the Linux one? Bug in the game or steam?

I’d reinstall the game specifically before hosing all of steam, but this screams issue you can’t fix downstream.

Reinstalling didn’t help but you’re right, it was using the wrong executable. I have no idea why but starting the game with forced “compatibility” to “Steam Linux Runtime” fixed the problem, even after removing the forced compatibility mode. The launch command is now as it (probably) should be:

/bin/sh\0-c\0/home/badcold/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=1214180 -- /home/badcold/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- '/home/badcold/.local/share/Steam/steamapps/common/Mini Countries/MiniCountries.x86_64'\0

Comparing a linux-native game, like “Mini Countries”, with one that runs through proton, like “Banner of Ruin” was not so wise.

Thank you!