How to Restart WirePlumber
Step-by-step instructions for restarting WirePlumber when camera or microphone audio routing stops responding, plus ways to verify the result and fix common issues.
Before you start
Restarting WirePlumber is useful when an application cannot access a camera microphone, a video call has no audio input, or PipeWire devices do not appear after connecting hardware. WirePlumber manages PipeWire sessions, device discovery, routing and policy decisions. A restart does not reset PipeWire itself unless you stop that service too.
You need a terminal on the same machine that runs the audio stack. For a standard desktop session, WirePlumber runs as a user service. Check it with: systemctl --user status wireplumber. If you are working on an embedded or appliance-style device, WirePlumber may run as a system service instead. Do not mix the two service scopes.
Close audio or video clients that may be actively using the camera or microphone before restarting. A brief interruption in routing is expected while the session manager restarts. The process is reversible: changing WirePlumber policy is not required, and restarting it again uses the same commands.
Step-by-step instructions
The main commands below apply to current Linux distributions where WirePlumber is the PipeWire session manager. Older releases may still use pipewire-media-session; in that case, restart that service using the same syntax instead of WirePlumber.
systemctl --user restart wireplumber
Run the command as the user who owns the graphical session. Do not use sudo for a user service. If the service is not found in the user scope, confirm the correct service name with:
systemctl --user list-units | grep -i wireplumber
If the service has stopped or failed, use start instead of restart:
systemctl --user start wireplumber
On a system-managed media appliance, open a root shell or use an account that can control systemd system units. First identify the unit name, then restart it:
systemctl list-units | grep -i wireplumber
systemctl restart wireplumber
For a more complete reset, restart PipeWire first and WirePlumber immediately after. This gives both the media server and session manager a clean state:
systemctl --user restart pipewire pipewire-pulse wireplumber
Use the combined command only when a simple WirePlumber restart does not help. It interrupts all PipeWire audio and video streams, so running calls or recordings may need to be reopened.
Check the output
First confirm that the service is active after the command:
systemctl --user status wireplumber --no-pager
Look for an active state and any recent error lines. Then check whether the camera or microphone appears in the PipeWire graph. A practical way is to open the application used for the call or recording and open its audio or video input selector. The expected device should be listed again.
For a terminal-level check, list PipeWire objects and filter for camera or audio input devices. The exact command depends on installed tools; in many WirePlumber builds, wpctl is available:
wpctl status
Inspect the Audio and Video sections. A detected USB camera normally appears under Video as a capture device, while a microphone appears under Audio. If a device was unplugged or is unsupported, restarting WirePlumber will not make it appear.
Common problems and next steps
If WirePlumber is not installed or the service unit is missing, check which session manager is active. Some systems use pipewire-media-session instead. The replacement command follows the same pattern, for example: systemctl --user restart pipewire-media-session.
If the camera works after connecting it again but not after a restart, rule out the physical connection and permissions first. A camera may need to be reconnected or may be claimed by another application. Restarting WirePlumber only refreshes discovery and routing; it does not unlock exclusive access to a device.
If the device is present in wpctl status but an application still has no audio, select the correct input in that application and move the test using the application's own level meter or preview. Application-specific device selection may remain on an old or invalid route after a restart.
If restarting WirePlumber repeatedly fails, check journal output for the reason before retrying:
journalctl --user -u wireplumber -n 50 --no-pager
Use this log to identify missing configuration, permission problems or dependency errors. Avoid changing WirePlumber configuration until the logged error points to a specific setting.