Symptoms & scope
- An upgrade leaves WirePlumber failed with an old-config message.
- Rules in main.lua.d or bluetooth.lua.d no longer affect devices.
Relevant environment
WirePlumber 0.5 and later using configuration fragments; Lua scripting support is distinct from obsolete Lua configuration files.
Recognizable messages (synthetic examples)
wireplumber[2190]: Failed to load configuration: The configuration file at /home/user/.config/wireplumber/wireplumber.conf is likely an old WirePlumber 0.4 config and is not supported anymore.Preserve and migrate the named override; this is not evidence of faulty ALSA hardware.
Possible causes
These are possible explanations, not a confirmed diagnosis. Several independent faults can coexist.
- A copied 0.4 wireplumber.conf can still reference config/lua components that 0.5 no longer accepts.
- Lua configuration directories need explicit migration; merely renaming .lua to .conf does not translate syntax or semantics.
Diagnose safely
Run one command at a time in the relevant session. Read the explanation first. Uppercase placeholders need your own values; tools and privileges vary by distribution. These commands are displayed here and never executed by the website.
Check 1
Read the installed daemon version without starting another instance.
wireplumber --versionInterpret the result: A 0.5-or-later version justifies the migration guide; retain the installed version because available options evolve.
Check 2
Read WirePlumber’s first configuration error and the exact named path.
journalctl --user -b -u wireplumber.service --no-pager -n 150Interpret the result: An old 0.4 config refusal identifies the override to isolate. A different parse failure needs review of the actual fragment rather than deleting all policy.
Evidence-guided next steps
Isolate the obsolete full configuration
If the daemon identifies an old local wireplumber.conf, save it outside the active search path and let the distribution’s current default load. Restart only WirePlumber after ending recordings, then verify devices return before restoring custom behavior.
Precautions: Do not alter /usr/share defaults or discard the old file; it documents custom routing, profiles and Bluetooth behavior to port.
Recovery / rollback: Restore the saved override if testing an older compatible environment, or return to shipped defaults if the migrated version fails.
Did this solution help you?
Port one device rule at a time
Translate needed rules into .conf fragments under ~/.config/wireplumber/wireplumber.conf.d using the migration guide’s matches/actions/update-props structure. Match the actual device.name or node.name and validate one rule before adding another.
Precautions: Rules and settings are different mechanisms; option names may differ between versions. Do not convert every Lua script by file extension alone.
Recovery / rollback: Remove the newly introduced fragment and restart WirePlumber if a rule hides devices or changes routes unexpectedly; keep the preserved original for reference.
Did this solution help you?
References & review
This guide was prepared from primary project or distribution sources and reviewed on the date shown. This is an editorial source check, not evidence that a fix was reproduced on your hardware. Diagnostic log examples are synthetic fixtures. Version-dependent details must be checked against your installed release.
- WirePlumber: migrating configuration from 0.4 (project or distribution documentation)
- WirePlumber: ALSA configuration (project or distribution documentation)
- WirePlumber: configuration option types (project or distribution documentation)