Steam Link

Steam Link

Host Steam instance restarting when Steam Link connects
As of last night, whenever I try to connect to my (Linux) Steam host application with either of my two Steam Links, the connection briefly appears to work (the "Tip" banner with the spinning busy cursor displays, but the desktop is never displayed) but Steam on the host PC restarts after a few seconds and the Steam Link goes back to the main menu.

This also happens if I set the Steam Link to connect in Big Picture mode (I normally connect in Desktop mode). Big Picture starts up on the host (in a window), shows what you'd expect for a few seconds, and then Steam restarts.

I'm gonna try switching to the beta build to see if that magically fixes anything; right now they're both on 918 (I see that 920 is out, but neither one finds it when I run a manual update check).

UPDATE: No, switching to the beta build (920) doesn't change the symptoms.
< >
Showing 1-15 of 17 comments
Not sure if it's related to this post or not, but the Steam Link that I put on the beta branch (so it jumped from 918 to 920) just picked up another update (921). Unfortunately, it didn't change the symptoms.

I do have one idea what it might be, although I don't like the implications. heh I checked the list of updated packages from yesterday's package updates, and part of it was a kernel update...so perhaps that's pooched something? That could explain why both Steam Links started having problems at the same time. When I run Steam from a terminal window, I get this as part of the output:

System.PlatformNotSupportedException: Video driver not supported at Xalia.Sdl.WindowingSystem.Create () [0x0003e] in <743e8bdcd9c54484ad89463ed4e626f6>:0 at Xalia.Sdl.WindowingSystem.get_Instance () [0x00007] in <743e8bdcd9c54484ad89463ed4e626f6>:0 at Xalia.Ui.UiMain..ctor () [0x00027] in <743e8bdcd9c54484ad89463ed4e626f6>:0 at Xalia.MainClass.Init (Xalia.Gudl.GudlStatement[] config) [0x0001b] in <743e8bdcd9c54484ad89463ed4e626f6>:0 ProtonFixes[31860] WARN: Skipping fix execution. We are probably running a unit test. ProtonFixes[31860] WARN: Skipping fix execution. We are probably running a unit test. fsync: up and running. System.PlatformNotSupportedException: Video driver not supported at Xalia.Sdl.WindowingSystem.Create () [0x0003e] in <743e8bdcd9c54484ad89463ed4e626f6>:0 at Xalia.Sdl.WindowingSystem.get_Instance () [0x00007] in <743e8bdcd9c54484ad89463ed4e626f6>:0 at Xalia.Ui.UiMain..ctor () [0x00027] in <743e8bdcd9c54484ad89463ed4e626f6>:0 at Xalia.MainClass.Init (Xalia.Gudl.GudlStatement[] config) [0x0001b] in <743e8bdcd9c54484ad89463ed4e626f6>:0

...but I want to be clear that happens just when I run Steam itself...and locally it works fine. Doesn't crash/restart, launches games (I just did a round of tending to my plants in Viridi)...it's fine. It's got this further up the stack, which looks reasonable to me (the video hardware is Intel):

Running query: 1 - GpuTopology Response: gpu_topology { gpus { id: 1 name: "Intel(R) Xe Graphics (TGL GT2)" vram_size_bytes: 24964549632 driver_id: k_EGpuDriverId_MesaIntel driver_version_major: 23 driver_version_minor: 2 driver_version_patch: 1 luid: 0 } gpus { id: 2 name: "llvmpipe (LLVM 15.0.7, 256 bits)" vram_size_bytes: 3221225472 driver_id: k_EGpuDriverId_MesaLLVMPipe driver_version_major: 0 driver_version_minor: 0 driver_version_patch: 1 luid: 0 } default_gpu_id: 1 }

This is what shows up in the console output after the moment I press Return on the Steam Link to connect to this host (in Desktop mode, if it matters):

05/28 20:04:01 minidumps folder is set to /tmp/dumps 05/28 20:04:01 Init: Installing breakpad exception handler for appid(steam_monitor)/version(20260527212104)/tid(32737) 05/28 20:04:01 Init: Installing breakpad exception handler for appid(steam_monitor)/version(1.0)/tid(32737) Clearing capture only gameID Streaming initialized and listening on port 27031 Streaming started to Steam Link build 921 at 192.168.1.214:40015, audio channels = 2, MTU = 1468 Streaming quality: k_EStreamQualityFast Streaming bitrate: Automatic Device form factor: TV Maximum capture: 1920x1080 59.94 FPS Video Streaming: enabled Audio Streaming: enabled Input Streaming: enabled ===================================================================== Game: UNKNOWN (0) Setting target bitrate to 15000 Kbit/s, burst bitrate is 75000 Kbit/s Creating new audio encoder for codec 1 Encoder audio init succeeded, now have 1 encoder(s) Caching cursor image for blank, size 16x16, serial 45, cache size = 1 GameScope focus changed to appID 0 Window title set to debian-installation : bash PipeWire: Initializing streaming PipeWire: Timed out waiting for initialization Changing record window: 0x3200007 (52428807) >>> Starting desktop stream SynchronizeClientState(): setting capture size 1920x1080 SynchronizeClientState(): setting title to debian-installation : bash SynchronizeClientState(): setting icon 16x16 SynchronizeClientState(): setting cursor to 45 SynchronizeClientState(): setting activity to k_EStreamActivityDesktop: Steam Controller Configs - Desktop Recording system audio PulseAudio: Sink alsa_output.usb-C-Media_Electronics_Inc._C-Media_R__Audio-00.analog-stereo is default PulseAudio: Adding sink[0] alsa_output.usb-C-Media_Electronics_Inc._C-Media_R__Audio-00.analog-stereo with priority 3, monitor is alsa_output.usb-C-Media_Electronics_Inc._C-Media_R__Audio-00.analog-stereo.monitor PulseAudio: Adding sink[3] alsa_output.pci-0000_00_1f.3.hdmi-stereo with priority 1, monitor is alsa_output.pci-0000_00_1f.3.hdmi-stereo.monitor PulseAudio: Recording on device alsa_output.usb-C-Media_Electronics_Inc._C-Media_R__Audio-00.analog-stereo.monitor Audio mix: start=17034982081, returned=0 Audio source [System Pulse]: init=0, adjustment=0, through=0, last_start=0, mixed=0, drop_before=0, drop_after=0 PulseAudio: Connected to device alsa_output.usb-C-Media_Electronics_Inc._C-Media_R__Audio-00.analog-stereo.monitor (0, not suspended). PulseAudio: Using sample spec 's16le 2ch 48000Hz', channel map 'front-left,front-right'. CLIENT: Got control packet k_EStreamControlSetQoS CLIENT: Got control packet k_EStreamControlSetTargetBitrate CLIENT: Starting audio stream: frequency=48000, channels=2 CLIENT: Initialized audio decoder: codec=1, sample rate=48000, channels=2 CLIENT: Got control packet k_EStreamControlStartAudioData CLIENT: Got control packet k_EStreamControlSetSpectatorMode CLIENT: Sending HID device 28de/1142/1 Valve Software Steam Controller at /dev/hidraw1 CLIENT: Sending HID device 28de/1142/2 Valve Software Steam Controller at /dev/hidraw2 CLIENT: Sending HID device 28de/1142/3 Valve Software Steam Controller at /dev/hidraw3 CLIENT: Sending HID device 28de/1142/4 Valve Software Steam Controller at /dev/hidraw4 CLIENT: Sending HID device 28de/1142/1 Valve Software Steam Controller at /dev/hidraw6 CLIENT: Sending HID device 28de/1142/2 Valve Software Steam Controller at /dev/hidraw7 CLIENT: Sending HID device 28de/1142/3 Valve Software Steam Controller at /dev/hidraw8 CLIENT: Sending HID device 28de/1142/4 Valve Software Steam Controller at /dev/hidraw9 CLIENT: Sending HID device 28de/1142/0 Valve Software Steam Controller at 1-1.2:1.0 CLIENT: Sending HID device 28de/1142/0 Valve Software Steam Controller at 1-1.1:1.0 CLIENT: Got control packet k_EStreamControlSetCaptureSize CLIENT: Got control packet k_EStreamControlSetTitle CLIENT: Got control packet k_EStreamControlSetIcon CLIENT: Got control packet k_EStreamControlSetCursor CLIENT: Got control packet k_EStreamControlSetActivity CLIENT: Got control packet k_EStreamControlSetCursorImage PipeWire: Loading null sink for streaming >>> Switching video stream from NONE to Desktop_MovieStream crash_20260528200413_42.dmp[32781]: Uploading dump (out-of-process) /tmp/dumps/crash_20260528200413_42.dmp /home/arno/.steam/debian-installation/steam.sh: line 966: 31153 Segmentation fault (core dumped) "$STEAMROOT/$STEAMEXEPATH" "$@" arno@localhost:~$ arno@localhost:~$ arno@localhost:~$ arno@localhost:~$ crash_20260528200413_42.dmp[32781]: Finished uploading minidump (out-of-process): success = yes crash_20260528200413_42.dmp[32781]: response: CrashID=bp-7f7339f7-3d31-4388-bda9-4998a2260528 crash_20260528200413_42.dmp[32781]: file ''/tmp/dumps/crash_20260528200413_42.dmp'', upload yes: ''CrashID=bp-7f7339f7-3d31-4388-bda9-4998a2260528''

After that, it starts back in with the startup messages for the restarted instance.
HOLD UP

Just ran another package update and there's another set of pending kernel updates. Perhaps, the smoking gun? :duethappy:

UPDATE: Sad face...didn't change the symptoms. Dang, I really thought that would be it.
So, from a variety of clues I'm assuming the host machine is Linux. Could you provide any details on what flavor, and what version? (Ubuntu, Debian, CachyOS, Bazzite, Endeavor, NixOS, Arch, SteamOS, etc.)

I'm *assuming* Debian based on the logs, but... Linux can be a pretty diverse ecosystem.

In addition, it'd be useful to know if you're on the beta branch for the Steam *client*. (And if not, could you swap to it to test?)
It also looks like this is related to audio pipewire capture. Thanks for the crash ID in the log above!
Yeah, it's Linux; Kubuntu 22.04 LTS to be specific. I've got one Steam link on the public build (918) and a second one on the beta build (921). Hopefully it's not just too long in the tooth (I mean, it's still getting security updates for another year but that doesn't mean Steam supports it.)

Steam on the host PC is on the stable branch, but I'll switch to the beta and see if it helps.

UPDATE: Unfortunately, it didn't. Just for grins, I'm gonna reboot the PC and the (beta) Steam link, 'cause I don't have any better ideas at the moment.

For what it's worth, there were some netplan-related phased updates released, like, super-recently that I had to go fiddle with my APT preferences to tell it I wasn't skeered to get a little earlier. They weren't pending a few hours ago, and sometimes upstream (in this case, "upstream" means "Ubuntu upstream") uses phased updates when they think they might have to pull a U-turn. That's not necessarily what's afoot here, but it might be. But either way, applying those updates doesn't seem to have helped.

If there's anything from the logs you want me to send, feel free to let me know. I found ~/.steam/debian-installation/logs but woo boy is there a lot of stuff in there. lol

UPDATE: The latest update doesn't seem to have changed anything.
Is there a "Verify integrity of game files", but for Steam itself? :)
I'm pretty sure this is a bug in Steam related to pipewire audio capture. Do you have other audio software that can use pipewire capture to verify that it works on your system?
Not that I know of, but I poked around a bit and found "pw-cat" which looks like a low-level tool to fiddle with PipeWire. I don't really know what I'm looking at, but...does this indicate a problem (the fact that no "available targets" are listed)? I've got an instance of mpv running, playing a video (with audio).
$ pw-cat --record --list-targets Available targets ("*" denotes default): $ pw-cat --play --list-targets Available targets ("*" denotes default):

The PipeWire service(s) seem to be...relatively happy? There's an error in the logs for the second command, though; is that the problem?

$ systemctl --user status pipewire.service ● pipewire.service - PipeWire Multimedia Service Loaded: loaded (/usr/lib/systemd/user/pipewire.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2026-05-28 22:34:49 CDT; 48min ago TriggeredBy: ● pipewire.socket Main PID: 1063 (pipewire) Tasks: 2 (limit: 37880) Memory: 2.7M CPU: 21ms CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire.service └─1063 /usr/bin/pipewire May 28 22:34:49 localhost systemd[1056]: Started PipeWire Multimedia Service. $ systemctl --user status pipewire-media-session.service ● pipewire-media-session.service - PipeWire Media Session Manager Loaded: loaded (/usr/lib/systemd/user/pipewire-media-session.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2026-05-28 22:34:49 CDT; 48min ago Main PID: 1064 (pipewire-media-) Tasks: 2 (limit: 37880) Memory: 3.3M CPU: 23ms CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire-media-session.service └─1064 /usr/bin/pipewire-media-session May 28 22:34:49 localhost systemd[1056]: Started PipeWire Media Session Manager. May 28 23:01:22 localhost pipewire-media-session[1064]: ms.mod.policy-node: 0x6264dc7780c0: no node found for 35, stream error $ systemctl --user status pipewire.socket ● pipewire.socket - PipeWire Multimedia System Socket Loaded: loaded (/usr/lib/systemd/user/pipewire.socket; enabled; vendor preset: enabled) Active: active (running) since Thu 2026-05-28 22:34:49 CDT; 49min ago Triggers: ● pipewire.service Listen: /run/user/1000/pipewire-0 (Stream) CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/pipewire.socket May 28 22:34:49 localhost systemd[1056]: Listening on PipeWire Multimedia System Socket.
That last bit might be a red herring, 'cause it doesn't happen every time. Tried it again when it didn't print that error and it still does the same thing:

$ systemctl --user restart pipewire-media-session.service $ systemctl --user status pipewire-media-session.service ● pipewire-media-session.service - PipeWire Media Session Manager Loaded: loaded (/usr/lib/systemd/user/pipewire-media-session.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2026-05-28 23:53:10 CDT; 8s ago Main PID: 14485 (pipewire-media-) Tasks: 2 (limit: 37880) Memory: 1.4M CPU: 11ms CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire-media-session.service └─14485 /usr/bin/pipewire-media-session May 28 23:53:10 localhost systemd[1056]: Started PipeWire Media Session Manager. $ journalctl --user --unit pipewire-media-session.service --follow May 28 22:34:05 localhost systemd[1055]: Stopping PipeWire Media Session Manager... May 28 22:34:05 localhost systemd[1055]: Stopped PipeWire Media Session Manager. -- Boot 35737e5a3a454403b78236368f2cf10f -- May 28 22:34:49 localhost systemd[1056]: Started PipeWire Media Session Manager. May 28 23:01:22 localhost pipewire-media-session[1064]: ms.mod.policy-node: 0x6264dc7780c0: no node found for 35, stream error May 28 23:51:16 localhost systemd[1056]: Stopping PipeWire Media Session Manager... May 28 23:51:16 localhost systemd[1056]: Stopped PipeWire Media Session Manager. May 28 23:51:16 localhost systemd[1056]: Started PipeWire Media Session Manager. May 28 23:53:10 localhost systemd[1056]: Stopping PipeWire Media Session Manager... May 28 23:53:10 localhost systemd[1056]: Stopped PipeWire Media Session Manager. May 28 23:53:10 localhost systemd[1056]: Started PipeWire Media Session Manager.
Originally posted by Arno:
Not that I know of

If you install OBS (the recording/streaming software, which is free), you should be able to try recording via Pipewire in it.

If that breaks, there's something wrong with the Pipewire setup on your system. If that *works*, there's probably something wrong with how Steam is trying to capture via Pipewire on your system. :)
Originally posted by Packetdancer:
If you install OBS (the recording/streaming software, which is free), you should be able to try recording via Pipewire in it.

If that breaks, there's something wrong with the Pipewire setup on your system. If that *works*, there's probably something wrong with how Steam is trying to capture via Pipewire on your system. :)

OK, I've done some science and while the problem is still ongoing, I have the following new information to report:
  1. I haven't picked up any more OS package updates, which...given how long it's been, presumably means the problem isn't "somebody at Canonical did a big oopsie and they're running around with their hair on fire trying to resolve it". Which is unfortunate, 'cause I like solutions where I don't have to do anything.
  2. The distro shipped with PulseAudio, as was the style at the time. PipeWire is also installed. I'm not sure exactly when I installed (the OS, I mean), but I checked the modtime on PipeWire's SystemD unit file and it's dated November 2022. The point is, this situation of PulseAudio and PipeWire's coexisting isn't a recent change.
  3. I tried installing PipeWire's PulseAudio support, but all that did was make all my audio devices disappear. My best guess on that is that PipeWire's PulseAudio shim and actual PulseAudio can't both be installed at the same time.
  4. While I was in this no-audio state, though, I thought maybe PipeWire was handling audio and all the currently-running apps were just still using PulseAudio, so I tried the CLI utility and it did successfully capture a desktop recording...but without audio. I'll add some notes further down. (To clarify, when I say "without audio"...it did successfully capture an audio track, but it was just silence the whole time.)
  5. Which leads me to my other thought, which is...is PulseAudio the "main" audio system, and even though PipeWire is installed and running, it's not really handling anything? So like, when I run a game via Steam, or watch a video with mpv, that's all happening via PulseAudio?
  6. Which then begs this question: Is Steam's reliance on PipeWire a recent change? 'Cause this setup's been working great for years, until last night.
  7. Anyway, after I uninstalled the PipeWire PulseAudio compatibility package and got the audio back, I downloaded OBS and successfully did a desktop recording (including audio from a video playing in mpv). Now, I don't know which audio service OBS uses, and I couldn't find anything in the settings to choose one (but I'm not an OBS expert), so I'm not sure whether that means "Steam's PipeWire implementation is borked" or "OBS is using PulseAudio, so the test didn't actually answer the question".

So, here's an example of what it looks like when the PipeWire recording doesn't work:
$ pw-cat --record --media-type Audio pipewire-recording-$(date +%Y%m%d%H%M%S).wav stream node 35 error: no node available remote error: id=3 seq:7 res:-2 (No such file or directory): no node available

When it works, there's a live status update about how it's recording, and of course afterward there's the output file. You can leave off the `--media-type Audio` to get a full A/V recording (probably want to change the output filename extension). Here's the description of the audio output file, based on the file(1) command: "RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, stereo 48000 Hz"

If I were a little more comfortable about the ins and outs of GNU/Linux audio plumbing, I would try uninstalling PulseAudio, reinstalling PipeWire's PulseAudio shim, and see what shakes out of that. But I'm not quite that comfortable, and I don't want to break something I can't fix on this computer. I feel like it's basically just like swapping out Web servers like Apache/Nginx, where it's like, yeah, you just need something listening on the right port and it's up to the application to know that PulseAudio listens on port xyz, whether that's actual PulseAudio or PipeWire's emulation...but I'm not quite ready to take that leap of faith. hehe

So...any further ideas?
PLOT TWIST

I tried it again on a whim...and it's working again. This is a bunch of crap 'cause I did a bunch of stuff but at the end of the day, the end result of all of it was that I put things back the way they were before. *shakes fist*

I mean, I guess that's not strictly true; this Steam Link and Steam on the host PC are both on the beta branch now...but that was already the case back when it wasn't working. And also I now have OBS installed, so I'm ready for my career in live-streaming showbiz.

bah Well, let me know if you want me to send you a log file now that it's working, so you can compare with something from before. I haven't tried the other Steam Link yet but I'll be using it later, so if it's been 24 hours since this post and I haven't updated saying it's still not working, assume that it it's fixed as well.

Anyway, thanks to both of y'all for taking the time to look into this! I'm all about getting to the bottom of things, so if you want me to test something else feel free to let me know.
Just weighing in with a quick +1. I've been seeing the same problem since ~5/27 and it began right after installing updates. I'm running Ubuntu 22.04 and have pipewire installed as well.
Originally posted by Cholly:
Just weighing in with a quick +1. I've been seeing the same problem since ~5/27 and it began right after installing updates. I'm running Ubuntu 22.04 and have pipewire installed as well.
Is it still not working? Just asking 'cause after all the above, for me it just started working again after what should have been no net change.

If it's still not working for you now...here's a list of everything I can remember doing (with the caveat that nothing I did seemed to actually fix it).

Changes:
  • Switch the Steam Link to the beta build
  • Switch Steam (on the host PC) to the beta build
  • Configure APT to always download any "phased update" packages
  • Install package "pipewire-pulse" (allows PipeWire to act as a PulseAudio server)
  • Remove package "pipewire-pulse" (after it didn't work and made all my audio devices disappear)

Configuring APT to always download any "phased update" packages (now that this seems to be over, I'm gonna go back into this file and comment both lines out, to go back to letting Canonical's phased updates work as expected):
$ cat /etc/apt/apt.conf.d/99phased-updates Update-Manager::Always-Include-Phased-Updates "1"; APT::Get::Always-Include-Phased-Updates "1";

Diagnostics:
## List PipeWire recording devices pw-cat --record --list-targets ## Status of PipeWire SystemD units systemctl --user status pipewire.service systemctl --user status pipewire-media-session.service systemctl --user status pipewire.socket ## Monitor the PipeWire session manager logs while fiddling journalctl --user --unit pipewire-media-session.service --follow ## Check for the installation logs for PipeWire packages zgrep pipewire /var/log/apt/history.log* ## Low-level PipeWire utility (test audio recording) pw-cat --record --media-type Audio pipewire-$(date +%Y%m%d%H%M%S).wav ## This only makes sense if you've got the pipewire-pulse package installed systemctl --user start pipewire-pulse.service ## I also installed OBS to do a test recording apt install obs-studio
We did ship a Steam update with a potential fix, so the fact that it's working for you now is good news.

@Arno, to answer your question, yes the pipewire audio capture is new in Steam.

@Cholly, if you opt into the Steam beta and update to the latest, do things work for you again?
< >
Showing 1-15 of 17 comments
Per page: 1530 50