PipeWire: Pulse can't create server for unix:native: Device or resource busy

I’ve been using PipeWire successfully for some time, but it stopped “working” and I fail to understand what’s going on. I’d like to use pavucontrol to control volume (at the moment it starts a window, but fails to connect to Pulse) and have Firefox choose Pulse as it’s audio backend (at the moment it chooses ALSA).

When I run

$ systemctl --user restart pipewire-pulse.service

this unit logs

pulse-server 0x5647ecb87880: can't create server for unix:native: Device or resource busy

Which I don’t understand. The socket looks pretty normal to me:

$ lsof /run/user/1000/pulse/native
COMMAND    PID   USER   FD   TYPE             DEVICE SIZE/OFF  NODE NAME
systemd   2662 lorenz   31u  unix 0x0000000000000000      0t0 69019 /run/user/1000/pulse/native type=STREAM (LISTEN)
pipewire- 8889 lorenz    3u  unix 0x0000000000000000      0t0 69019 /run/user/1000/pulse/native type=STREAM (LISTEN)

I thought that maybe there are multiple instances of PipeWire or PipeWire Pulse running, but this does not seem to be the case:

 sudo ps -Aef | grep pipe
lorenz    8060  2662  0 10:13 ?        00:00:00 /nix/store/bdv2qqm9xcggh0lxw6mgs2llmj24dap6-pipewire-0.3.23/bin/pipewire
lorenz    8062  2662  0 10:13 ?        00:00:00 /nix/store/5zyr879n5k5w70m22a2nqr9mihqxlw2w-pipewire-0.3.23-mediaSession/bin/pipewire-media-session
lorenz    8889  2662  0 10:16 ?        00:00:00 /nix/store/ra4wa7rnn04nbkdcfwcvkmy8bmxazw7d-pipewire-0.3.23-pulse/bin/pipewire-pulse
lorenz    9061  3506  0 10:20 pts/3    00:00:00 grep pipe

I tried restarting various units (pipewire.service, pipewire-pulse.service, pipewire-pulse.socket, xdg-desktop-portal-wlr) and rebooted multiple times to no avail.

Please help me!

It sounds like you have multiple pulseaudio or pipewire instances running. If you share your config it may be obvious but I would try the following.

  1. px aux | grep 'pipewire|pulse' and see if you have any results.
  2. Find the pulseaudio (or other) socket that pipewire is trying to listen on and see what process is using it. You may need to start pipewire under strace to see what socket it is failing to register.

There are some typos in your shell command

ps aux | grep 'pipewire\|pulse'

Thanks for your replies. NixOS configuration is here, on GitHub.

I had some luck by starting pipewire-pulse manually:

% ps aux | grep 'pipewire\|pulse'
lorenz   10043  0.0  0.0 107076 10472 ?        S<sl 14:23   0:00 /nix/store/mc0y2a7db01pa5ryac36j9zq4kavv0sy-pipewire-0.3.24/bin/pipewire
lorenz   10061  0.0  0.0  82704  4684 ?        S<sl 14:23   0:00 /nix/store/s63kgipyhxffzzsw9sncwfrlmzwwmbv8-pipewire-0.3.24-pulse/bin/pipewire-pulse
lorenz   10093  0.0  0.0  89800 10788 ?        S<sl 14:23   0:00 /nix/store/gisjhys3ivcc3zs2fbvvbz5rrl49qgqd-pipewire-0.3.24-mediaSession/bin/pipewire-media-session
lorenz   16744  0.0  0.0 223448  2424 pts/5    S+   14:44   0:00 grep pipewire\|pulse
% systemctl --user stop pipewire-pulse.service
Warning: Stopping pipewire-pulse.service, but it can still be activated by:
  pipewire-pulse.socket
% ps aux | grep 'pipewire\|pulse'
lorenz   10043  0.0  0.0 107076 10472 ?        S<sl 14:23   0:00 /nix/store/mc0y2a7db01pa5ryac36j9zq4kavv0sy-pipewire-0.3.24/bin/pipewire
lorenz   10093  0.0  0.0  89800 10788 ?        S<sl 14:23   0:00 /nix/store/gisjhys3ivcc3zs2fbvvbz5rrl49qgqd-pipewire-0.3.24-mediaSession/bin/pipewire-media-session
lorenz   16839  0.5  0.0  82704  4716 ?        S<sl 14:45   0:00 /nix/store/s63kgipyhxffzzsw9sncwfrlmzwwmbv8-pipewire-0.3.24-pulse/bin/pipewire-pulse
lorenz   16855  0.0  0.0 223448  2364 pts/5    S+   14:45   0:00 grep pipewire\|pulse
% systemctl --user stop pipewire-pulse.service pipewire-pulse.socket
% ps aux | grep 'pipewire\|pulse'
lorenz   10043  0.0  0.0 107076 10472 ?        S<sl 14:23   0:00 /nix/store/mc0y2a7db01pa5ryac36j9zq4kavv0sy-pipewire-0.3.24/bin/pipewire
lorenz   10093  0.0  0.0  89800 10788 ?        S<sl 14:23   0:00 /nix/store/gisjhys3ivcc3zs2fbvvbz5rrl49qgqd-pipewire-0.3.24-mediaSession/bin/pipewire-media-session
lorenz   16891  0.0  0.0 223448  2308 pts/5    S+   14:45   0:00 grep pipewire\|pulse
% /nix/store/s63kgipyhxffzzsw9sncwfrlmzwwmbv8-pipewire-0.3.24-pulse/bin/pipewire-pulse
[W][000004828.461280][pulse-server.c:5990 make_local_socket()] pulse-server 0x55a0cea06e20: unlink stale socket /var/run/user/1000/pulse/native
[W][000004836.719000][pulse-server.c:479 reply_error()] pulse-server 0x55a0ce9fe9b0: [PulseAudio Volume Control] ERROR command:87 (EXTENSION) tag:12 error:19 (Operation not supported)
[W][000004836.719028][pulse-server.c:479 reply_error()] pulse-server 0x55a0ce9fe9b0: [PulseAudio Volume Control] ERROR command:87 (EXTENSION) tag:13 error:19 (Operation not supported)
[W][000004836.719037][pulse-server.c:479 reply_error()] pulse-server 0x55a0ce9fe9b0: [PulseAudio Volume Control] ERROR command:87 (EXTENSION) tag:14 error:19 (Operation not supported)
[W][000004836.719044][pulse-server.c:479 reply_error()] pulse-server 0x55a0ce9fe9b0: [PulseAudio Volume Control] ERROR command:87 (EXTENSION) tag:15 error:19 (Operation not supported)
[W][000004836.737635][pulse-server.c:479 reply_error()] pulse-server 0x55a0ce9fe9b0: [PulseAudio Volume Control] ERROR command:87 (EXTENSION) tag:17 error:19 (Operation not supported)

PulseAudio Volume Control now looks as usual.

Also, to clarify PipeWire version:

% pipewire --version
pipewire
Compiled with libpipewire 0.3.24
Linked with libpipewire 0.3.24

The systemd Unit still behaves the same, though, and I still fail to understand why. Further help is appreciated!

Did you ever resolve this issue? I’m having the same problem and this is the BEST “google match” so far. Nothing else seems to point me in the right direction. I thought it was because I still had a pulseaudio.socket opened. But I masked the socket, rebooted, and found the same result. I can’t figure out WHAT would be causing this, unless there is something run twice and then it fails? But I don’t see any instances of pipewire-pulse running anywhere after boot. I also have the same results when running manually.

No. I am still running

systemctl --user stop pipewire-pulse.service pipewire-pulse.socket
/nix/store/s63kgipyhxffzzsw9sncwfrlmzwwmbv8-pipewire-0.3.24-pulse/bin/pipewire-pulse

every time I log in after a reboot. It’s quite annoying.

confirm. have the same issue.

here is my config https://github.com/halturin/nixos-config/blob/e56f748b3d93e18dfad2f8fa05c3eeb1958e0c79/etc/nixos/configuration.nix#L33

commenting out these lines didn’t have effect

 # sound.enable = true;
 # hardware.pulseaudio.enable = true;

i stil have pulseaudio running along with the pipeware and i suppose thats the reason why i dont see my audio interface as an input Pipewire 0.3.25 on kernel 5.11.11. No input on external usb interface Presonus 1810c. · Issue #122008 · NixOS/nixpkgs · GitHub

❯❯❯❯ ps aux | grep 'pipewire|pulse'                                                                                                                             
taras       3070  1.1  0.0 6704792 28252 ?       S<sl May09 104:16 /nix/store/9ail1cn4ji31ihf3z5clkq4yckkm908i-pulseaudio-14.2/bin/pulseaudio --daemonize=no --log-target=journal     
taras       3557  0.0  0.0 240392  8460 ?        Sl   May09   0:00 /nix/store/9ail1cn4ji31ihf3z5clkq4yckkm908i-pulseaudio-14.2/libexec/pulse/gsettings-helper                         
taras       3613  0.0  0.0 312476  7504 ?        S<sl May09   0:00 /nix/store/4qp4npwqabf3mnsy230w3z1nqdjl1gxr-pipewire-0.3.26/bin/pipewire                                           
taras       3614  0.0  0.0 305404  7428 ?        S<sl May09   0:00 /nix/store/wsbzdvp1fv3dcg79w8acd405rdm04jqi-pipewire-0.3.26-mediaSession/bin/pipewire-media-session                
taras     537523  0.0  0.0   9708  6040 pts/8    S+   14:17   0:00 rg pipewire|pulse

UPD: its finally worked :slight_smile: I missed the key options in my config. here is working version https://github.com/halturin/nixos-config/blob/master/etc/nixos/configuration.nix#L35