You are not logged in.

#1 2025-11-13 13:15:20

ananaft
Member
Registered: 2025-11-10
Posts: 3

[SOLVED] Wireplumber broken even after fresh install

After running into some issues with Ardour and the automatic pipewire-jack routing it uses, I decided to try fixing it by disabling my unused sound cards, as I'm using a Scarlett 2i2 as sound sink and source. I wrote the following config file:

~/.config/wireplumber/wireplumber.conf.d/10-alsa-disable.conf

monitor.alsa.rules = [
  {
    matches = [
      { device.name = "alsa_card.pci-0000_0b_00.1" }
    ]
    actions = {
      update-props = {
        device.disabled = true
      }
    }
  }
  {
    matches = [
      { device.name = "alsa_card.pci-0000_0e_00.4" }
    ]
    actions = {
      update-props = {
        device.disabled = true
      }
    }
  }
]

Further information on the cards:

id 41, type PipeWire:Interface:Device/3
device.name = "alsa_card.pci-0000_0b_00.1"
device.description = "Navi 48 HDMI/DP Audio Controller"
device.nick = "HDA ATI HDMI"

id 44, type PipeWire:Interface:Device/3
device.name = "alsa_card.pci-0000_0e_00.4"
device.description = "Starship/Matisse HD Audio Controller"
device.nick = "HD-Audio Generic"

After the first reboot with the config file created, whenever executing the command wireplumber, I get the following errors:

E 12:44:40.390010 wp-event-dispatche (null):(null):(null): wp_event_dispatcher_unregister_hook: assertion 'already_registered_dispatcher == self' failed
E 12:44:40.391373 wp-event-dispatche (null):(null):(null): wp_event_dispatcher_unregister_hook: assertion 'already_registered_dispatcher == self' failed
E 12:44:40.392342 wp-event-dispatche (null):(null):(null): wp_event_dispatcher_unregister_hook: assertion 'already_registered_dispatcher == self' failed
E 12:44:40.393285 wp-event-dispatche (null):(null):(null): wp_event_dispatcher_unregister_hook: assertion 'already_registered_dispatcher == self' failed

Followed by these warnings when interrupting with ^C:

W 12:44:41.636625                   pw.core ../pipewire/src/pipewire/core.c:199:destroy_proxy: 0x5d43488fc160:  leaked proxy 0x5d434897e9f0 id:10
W 12:44:41.637494                   pw.core ../pipewire/src/pipewire/core.c:199:destroy_proxy: 0x5d43488fc160:  leaked proxy 0x5d43489e5b20 id:28

I get the following output using pw-cli:

>> ls 10
    id 10, type PipeWire:Interface:Module/3
               object.serial = "10"
               module.name = "libpipewire-module-spa-node-factory"

>> ls 28
    id 28, type PipeWire:Interace:Factory/3
               object.serial = "28"
               module.id = "22"
               factory.name = "endpoint-link"
               factory.type.name = "PipeWire:Interface:EndpointLink"
               factory.type.version = "0"

>> ls 22
    id 22, type PipeWire:Interface:Module/3
               object.serial = "22"
               module.name = "libpipewire-module-session-manager"

I've never run into any issues using Pipewire before this. After trying a complete reinstall, even switching to the current LTS kernel, the issue still persists on a basically blank system. The pipewire systemd unit itself and pw-cli work fine.

$ systemctl --user status pipewire

shows no errors while

$ systemctl --user status wireplumber

throws the same errors as the wireplumber command followed by

default: Failed to get percentage from Upower: org.freedesktop.DBus.Error.NameHasNoOwner

After switching to PulseAudio I had no issues with my audio and could even control the corresponding sound cards using alsamixer. That being said, I would highly prefer being able to use Pipewire again on this computer. Does anybody have any idea how to potentially fix this issue? Thanks in advance!

Last edited by ananaft (2025-11-16 15:22:04)

Offline

#2 2025-11-13 15:25:16

seth
Member
From: Don't DM me only for attention
Registered: 2012-09-03
Posts: 70,904

Re: [SOLVED] Wireplumber broken even after fresh install

Wireplumber broken even after fresh install

I wrote the following config file

After trying a complete reinstall

Did you keep your $HOME?

Online

#3 2025-11-13 16:48:38

tekstryder
Member
Registered: 2013-02-14
Posts: 459

Re: [SOLVED] Wireplumber broken even after fresh install

ananaft wrote:

After the first reboot with the config file created, whenever executing the command wireplumber, I get the following errors:

E 12:44:40.390010 wp-event-dispatche (null):(null):(null): wp_event_dispatcher_unregister_hook: assertion 'already_registered_dispatcher == self' failed
E 12:44:40.391373 wp-event-dispatche (null):(null):(null): wp_event_dispatcher_unregister_hook: assertion 'already_registered_dispatcher == self' failed
E 12:44:40.392342 wp-event-dispatche (null):(null):(null): wp_event_dispatcher_unregister_hook: assertion 'already_registered_dispatcher == self' failed
E 12:44:40.393285 wp-event-dispatche (null):(null):(null): wp_event_dispatcher_unregister_hook: assertion 'already_registered_dispatcher == self' failed

Regarding these errors specifically, I filed an issue upstream after the most recent wireplumber release:

https://gitlab.freedesktop.org/pipewire … issues/862

It was quickly addressed and the fix will be in the next release.

Offline

#4 2025-11-13 19:47:57

ananaft
Member
Registered: 2025-11-10
Posts: 3

Re: [SOLVED] Wireplumber broken even after fresh install

seth wrote:

Wireplumber broken even after fresh install

I wrote the following config file

After trying a complete reinstall

Did you keep your $HOME?

I've backed up my $HOME on a separate, currently unmounted drive. The reinstall is blank in the sense that I simply did the necessary steps for a working  system and installed pipewire packages afterwards.

$ pacman -Q | grep wire

lib32-libpipewire 1:1.4.9-1
lib32-pipewire 1:1.4.9-1
libpipewire 1:1.4.9-1
libwireplumber 0.5.12-1
pipewire 1:1.4.9-1
pipewire-alsa 1:1.4.9-1
pipewire-audio 1:1.4.9-1
pipewire-jack 1:1.4.9-1
pipewire-pulse 1:1.4.9-1
wireplumber 0.5.12-1

Potentially necessary ALSA packages should also be installed:

$ pacman -Q | grep alsa

alsa-card-profiles 1:1.4.9-1
alsa-firmware 1.2.4-4
alsa-lib 1.2.14-2
alsa-topology-conf 1.2.5.1-4
alsa-ucm-conf 1.2.14-2
alsa-utils 1.2.14-1
lib32-alsa-lib 1.2.14-2
pipewire-alsa 1:1.4.9-1
tekstryder wrote:
ananaft wrote:

After the first reboot with the config file created, whenever executing the command wireplumber, I get the following errors:

E 12:44:40.390010 wp-event-dispatche (null):(null):(null): wp_event_dispatcher_unregister_hook: assertion 'already_registered_dispatcher == self' failed
E 12:44:40.391373 wp-event-dispatche (null):(null):(null): wp_event_dispatcher_unregister_hook: assertion 'already_registered_dispatcher == self' failed
E 12:44:40.392342 wp-event-dispatche (null):(null):(null): wp_event_dispatcher_unregister_hook: assertion 'already_registered_dispatcher == self' failed
E 12:44:40.393285 wp-event-dispatche (null):(null):(null): wp_event_dispatcher_unregister_hook: assertion 'already_registered_dispatcher == self' failed

Regarding these errors specifically, I filed an issue upstream after the most recent wireplumber release:

https://gitlab.freedesktop.org/pipewire … issues/862

It was quickly addressed and the fix will be in the next release.

After applying these changes to my source file located at /usr/share/wireplumber/scripts/device/automute-alsa-routes.lua, I now simply see the following errors/warnings in journalctl:

$ journalctl -b

Nov 13 20:20:34 binbows systemd[674]: Started PipeWire Multimedia Service.
Nov 13 20:20:34 binbows systemd[674]: Reached target Main User Target.
Nov 13 20:20:34 binbows systemd[674]: Started Multimedia Service Session Manager.
Nov 13 20:20:34 binbows systemd[674]: Startup finished in 134ms.
Nov 13 20:20:35 binbows wireplumber[686]: default: Failed to get percentage from UPower: org.freedesktop.DBus.Error.NameHasNoOwner
Nov 13 20:20:35 binbows wireplumber[686]: spa.bluez5: BlueZ system service is not available
Nov 13 20:20:35 binbows wireplumber[686]: wp-device: SPA handle 'api.libcamera.enum.manager' could not be loaded; is it installed?
Nov 13 20:20:35 binbows wireplumber[686]: s-monitors-libcamera: PipeWire's libcamera SPA plugin is missing or broken. Some camera types may not be supported.

I figure these can all safely be ignored? wireplumber and wpctl simply freeze now when trying to run them. Could it be that disabling my sound cards through Wireplumber changed something at hardware level?

Offline

#5 2025-11-13 20:47:51

seth
Member
From: Don't DM me only for attention
Registered: 2012-09-03
Posts: 70,904

Re: [SOLVED] Wireplumber broken even after fresh install

You're not supposed to run wireplumber yourself.

systemctl --user status wireplumber pipewire

If wpctl status "hangs"

strace -f -o /tmp/wpctl.strace wpctl status
cat /tmp/wpctl.strace | curl -F 'file=@-' 0x0.st

Online

#6 2025-11-14 10:50:26

ananaft
Member
Registered: 2025-11-10
Posts: 3

Re: [SOLVED] Wireplumber broken even after fresh install

seth wrote:

You're not supposed to run wireplumber yourself.

systemctl --user status wireplumber pipewire

If wpctl status "hangs"

strace -f -o /tmp/wpctl.strace wpctl status
cat /tmp/wpctl.strace | curl -F 'file=@-' 0x0.st

So after another reinstall, and applying the patch tekstryder mentioned, it finally works again. The issue after my first reinstall was probably that I would execute wireplumber without realizing that it would mess with the already running systemd unit. Thanks for the hint seth! That could have been obvious to me... roll

Thank you everyone for your time! Consider this closed!

Offline

#7 2025-11-14 13:01:30

seth
Member
From: Don't DM me only for attention
Registered: 2012-09-03
Posts: 70,904

Re: [SOLVED] Wireplumber broken even after fresh install

\o/
Please always remember to mark resolved threads by editing your initial posts subject - so others will know that there's no task left, but maybe a solution to find.
Thanks.

Online

Board footer

Powered by FluxBB