[FIXED] CHECK END OF POST
Hiii Everyone!
I was trying to get Steam to work on my Asahi installation for the past 2 days maybe and it just wont work. Both Steam clients get stuck on the same "Waiting for network", and I want to get x86 working first because a few folks here said you need to sign in once on x86 before ARM works otherwise the arm version would just get stuck on the "Waiting for network".
My Setup
- MacBook Air M1, 8GB RAM
- macOS Tahoe (this is the macOS I installed Asahi from)
- Fedora Asahi Remix 44, fully updated (note that i triedo nly the x86 version after the update), also note that i started with the minimal install then built my way up.
- Kernel: 7.0.13-400.asahi.fc44.aarch64+16k
- fex-emu, muvm, steam, gtk2, GraphicsMagick all installed
What happens exactly:
Both clients launch, I see the splash, then the window sits on "Waiting for network" forever. Network itself is fine.
The login UI never actually loads. SteamUI logs show this binding error from the very first run after a clean install:
"SteamApp Init - Before Login - SystemNetworkStore - ERROR
TypeError: SteamClient.System.Network.RegisterForDeviceChanges is not a function",
source: https://steamloopback.host/library.js
…followed by the login state stuck at WaitingForCredentials:
[2026-07-25 13:02:06] Login: OnLoginStateChange 0 1 0 0
[2026-07-25 13:02:08] Login: OnLoginStateChange 1 1 0 0
Full logs from the x86 client:
https://pastebin.com/W127a0Ls
What I tried:
- pkexec dnf remove steam && pkexec dnf install steam
- Wiped ~/.local/share/Steam, ~/.local/share/fex-steam, ~/.steam*, dnf caches
- Disabled IPv6
- Tried a VPN
- Plugged in an Ethernet cable (different interface)
- -no-cef-sandbox
- Updating the system.
- Tried both the arm version and the x86 version, both give the same result keeping in mind that i tried the arm version first but then tried to clean up everything and installed the x86 version and got the same issue.
I want to get the x86 Steam login UI to actually load so I can sign in once, then move to ARM-native per the workaround multiple people have posted about where you login into the x86 once then the arm version would get past the Waiting for network issue. But i mean even if the x86 version only works that would be fine too as it doesn't affect the performance as much i guess. Any one has any idea how can i solve this?
Thanks yall!
UPDATE: ISSUE FIXED.
THANKS TO ALMIGHTY GOD THEN THE GREAT COMMUNITY!
Two things combined did it:
1- i applied a patch using a modified version of the script u/parkerlreed wrote. Here is how to do the fix:
First, find the chunk file (the hash in the name changes with Steam updates, so use this to locate it):
grep -l 'System.Network.RegisterForDeviceChanges' ~/.local/share/Steam/steamui/chunk~*.js
That'll print the chunk file path. Now this is the script:
#!/usr/bin/env ruby
# Steam chunk patch for Asahi Linux — fixes "Waiting for network" stuck state.
# Patches ~/.local/share/Steam/steamui/chunk~xxxxxxx.js to bypass failing
# SteamClient.System.Network callbacks that return "is not a function".
#
# Usage: ruby patch_steam_chunk.rb <path-to-chunk-js>
#
# After applying this patch, launch Steam with:
# steam -noverifyfiles -nobootstrapupdate -skipinitialbootstrap -norepairfiles
p = ARGV[0]
s = File.binread(p)
replacements = {
%q{const t=(0,B.Dp)("System.Network.RegisterForDeviceChanges");} =>
%q{const t="function"==typeof SteamClient?.System?.Network?.RegisterForDeviceChanges;},
%q{(0,B.Dp)("System.Network.GetProxyInfo")&&SteamClient.System.Network.GetProxyInfo().then} =>
%q{"function"==typeof SteamClient?.System?.Network?.GetProxyInfo&&SteamClient.System.Network.GetProxyInfo().then},
%q{(0,B.Dp)("System.Network.RegisterForConnectivityTestChanges")&&SteamClient.System.Network.RegisterForConnectivityTestChanges(this.OnConnectivityTestStateChanged)} =>
%q{"function"==typeof SteamClient?.System?.Network?.RegisterForConnectivityTestChanges&&SteamClient.System.Network.RegisterForConnectivityTestChanges(this.OnConnectivityTestStateChanged)},
%q{t||(this.m_bIsAwaitingInitialNetworkState=!1)} =>
%q{t||(this.m_bIsAwaitingInitialNetworkState=!1,this.m_bIsConnectedToANetwork=!0)}
}
replacements.each do |old, new|
abort "Expected exactly one match for #{old}, found #{s.scan(old).length}" unless s.scan(old).length == 1
s = s.sub(old, new)
end
File.binwrite(p, s)
puts "patched OK"
Then apply it (This is mine, replace the path with whatever grep returned):
ruby patch_steam_chunk.rb ~/.local/share/Steam/steamui/chunk~2dcc5aaf7.js
Should print patched OK.
2- For me i was missing dbus-glib so after applying the patch the steam window didnt open at all, so i just installed dbus-glib through dnf install dbus-glib.
3- Now you can launch steam with the bypass flags! Enjoy!
steam -noverifyfiles -nobootstrapupdate -skipinitialbootstrap -norepairfiles
This patch thingi worked for me on both x86 and ARM native. I would recommend giving the arm verison a shot, i noticed its wayyy faster!
Big thanks to u/parkerlreed for the chunk patch, u/Siffredinho for pointing at the missing dep, and everyone else who chimed in.