Public bug reported:
# Diagnosis and workaround for analog headphone audio failure
Intervention date: October 2, 2026.
## Summary
A persistent configuration change was applied to prevent automatic
suspension of the analog output used by the 3.5 mm headphones. The
leading hypothesis is a failure to resume audio after suspension due to
inactivity. The configuration loaded successfully and automated tests
passed, but the exact cause in the driver or audio service has not been
isolated. Because the failure is intermittent, confirmation during
normal use is still needed to establish whether the workaround
consistently prevents it.
## Reported symptoms
The headphones worked normally during continuous playback. After a
period without sound, audio stopped working and videos in the browser
stopped loading or playing. The user restored operation by unplugging
and reconnecting the 3.5 mm headphones or switching the audio output
between HDMI and headphones in the GNOME panel.
The provided screen recording shows this output switching. The
headphones are connected to the laptop's analog audio jack, rather than
through Bluetooth.
## Identified environment
| Component | Observed value |
| --- | --- |
| Operating system | Ubuntu 24.04.3 LTS |
| Laptop | Dell Vostro 3520 |
| Kernel | 7.0.0-34-generic |
| Audio server | PipeWire 1.0.5, with pipewire-pulse |
| Audio session manager | WirePlumber 0.4.17 |
| Controller | HDA Intel PCH |
| Analog codec | Cirrus Logic CS8409/CS42L42 |
| Driver | snd_hda_intel |
| Affected output | alsa_output.pci-0000_00_1f.3.analog-stereo |
| Selected port | analog-output-headphones |
## Evidence and interpretation
Before the change, `pactl list sinks` showed the output in the
`SUSPENDED` state while the headphone port remained available and
selected. At the time of that observation, the system therefore still
detected the physically connected headphones.
The installed script `/usr/share/wireplumber/scripts/suspend-node.lua`
uses a default timeout of 5 seconds to suspend an idle device. Setting
`session.suspend-timeout-seconds` to zero disables this suspension.
The values `power_save=1` and `power_save_controller=Y` were also found
in the `snd_hda_intel` module. These are additional power-saving
mechanisms; their involvement in the failure has not been demonstrated.
In logs preceding the intervention, the `pipewire-pulse` service
reported `Input/output error` messages for clients such as Brave and
Mutter. This confirms that audio communication errors were occurring,
but the logs alone do not identify which component caused the problem.
Suspending an unused output is normal behavior. The suspected bug is
that, in this environment, resuming that output sometimes failed.
Keeping the device active avoids this transition and may therefore work
around the defect. An audio failure can also prevent videos from
advancing when playback depends on audio/video synchronization; this is
an interpretation consistent with the reported symptoms, rather than
evidence of a network problem.
Switching between HDMI and headphones reconfigures the output, which is
consistent with the observed recovery. Neither a physical headphone
defect nor a specific kernel bug has been established.
## Applied change
The previously nonexistent directory `~/.config/wireplumber/main.lua.d/`
and the following file were created:
`/home/gustavo-sousa/.config/wireplumber/main.lua.d/51-headphone-no-
suspend.lua`
Applied contents:
```lua
-- WirePlumber 0.4: avoid suspending the built-in analog headphone output.
-- Remove this file and restart wireplumber to restore the default behavior.
table.insert(alsa_monitor.rules, {
matches = {
{
{ "node.name", "equals", "alsa_output.pci-0000_00_1f.3.analog-stereo" },
},
},
apply_properties = {
["session.suspend-timeout-seconds"] = 0,
},
})
```
The rule matches only the identified built-in analog output. The 3.5 mm
headphones and internal speakers share this output, so the change also
applies when the same output uses the speakers. No general rule was
applied to Bluetooth, USB, HDMI, or microphones.
The service was restarted with:
```sh
systemctl --user restart wireplumber
```
The Lua format was chosen because the installed WirePlumber version
belongs to the 0.4 series. The configuration format for the 0.5 series
differs and should not be substituted directly in this environment. If
WirePlumber is upgraded to 0.5, this rule should be reviewed and
migrated.
No driver parameters were changed. No files under `/etc/modprobe.d/`
were modified, no packages were installed, and no browser settings were
changed. The persistent audio configuration change was limited to the
file above.
As a diagnostic artifact, frames from the screen recording were combined
into an image at `/tmp/headphone-diagnostic-frames.png`. This temporary
file is not part of the workaround.
## Tests and results
1. Inspection with `pw-dump` confirmed `session.suspend-timeout-seconds = 0` on
the correct output.
2. The `wireplumber`, `pipewire`, and `pipewire-pulse` services remained active.
3. A test sound was played five times with `pw-play`, using a stream volume of
0.05, each followed by a 10-second wait. All playback commands completed
without error, and the output remained `idle`, without suspension.
4. During a 5-minute observation window, the output was inspected every 50
seconds. At 50, 100, 150, 200, and 250 seconds it was `idle`; at 300 seconds it
was `running`. No inspection found it `suspended`.
5. Test playback after that window completed without error. Since the output
was already `running` at the final inspection, uninterrupted silence throughout
the entire 5 minutes cannot be guaranteed. Nevertheless, the test verified
availability and playback at the end of the window.
6. The `analog-output-headphones` port remained selected. The PipeWire and
pipewire-pulse logs inspected after the intervention contained no new entries.
The tests verified that playback commands completed and the output
remained available. They do not provide human confirmation of sound
quality or a full reproduction of the original browser issue.
No computer reboot, physical headphone disconnection, or listening test
of the speakers was performed. Persistence is provided by the
configuration file but has not yet been validated after rebooting the
computer. At the time of testing, the user stated that the problem
occurred intermittently and that they had not yet performed an extended
test during normal use.
## Effects of the change
Keeping the analog output active may increase power consumption and
reduce battery life. This configuration avoids the suspected problematic
transition; it is not evidence that the underlying defect has been fixed
in the driver or PipeWire code.
## How to revert
Remove only the created file and restart the service to restore the
previous policy:
```sh
rm
/home/gustavo-sousa/.config/wireplumber/main.lua.d/51-headphone-no-suspend.lua
systemctl --user restart wireplumber
```
There is no need to remove the directory or modify files distributed by
the operating system.
## Next step if the failure recurs
Record the time of the occurrence and inspect the output state and logs
before switching outputs or reconnecting the headphones:
```sh
pactl list sinks
wpctl status
journalctl --user -u wireplumber -u pipewire -u pipewire-pulse --since '10
minutes ago' --no-pager
journalctl -k --since '10 minutes ago' --no-pager
```
The planned next step is to temporarily test
`snd_hda_intel.power_save=0`, compare the result, and restore the
previous value if there is no benefit. Only if that test resolves the
issue will persistence in `/etc/modprobe.d/99-headphone-audio.conf`,
with `options snd_hda_intel power_save=0`, be considered. This step was
not performed during this intervention.
## References
- [WirePlumber ALSA
configuration](https://pipewire.pages.freedesktop.org/wireplumber/daemon/configuration/alsa.html):
meaning of the suspension property. The format examples on that page are for
the 0.5 series; the applied file follows the locally installed scripts from
version 0.4.17.
- [Migrating WirePlumber 0.4
configuration](https://pipewire.pages.freedesktop.org/wireplumber/daemon/configuration/migration.html):
differences between configuration formats.
- [Linux kernel audio power-saving
documentation](https://www.kernel.org/doc/html/latest/sound/designs/powersave.html):
driver power-saving mechanism.
- Local evidence: state obtained with `pactl`, `wpctl`, and `pw-dump`;
`journalctl` logs; installed WirePlumber scripts; screenshot and screen
recording supplied by the user.
ProblemType: Bug
DistroRelease: Ubuntu 24.04
Package: wireplumber 0.4.17-1ubuntu4.1
ProcVersionSignature: Ubuntu 7.0.0-34.34~24.04.1-generic 7.0.14
Uname: Linux 7.0.0-34-generic x86_64
ApportVersion: 2.28.1-0ubuntu3.8
Architecture: amd64
CasperMD5CheckResult: pass
CurrentDesktop: ubuntu:GNOME
Date: Fri Oct 2 18:29:18 2026
InstallationDate: Installed on 2025-06-11 (478 days ago)
InstallationMedia: Ubuntu 24.04.1 LTS "Noble Numbat" - Release amd64
(20240827.1)
ProcEnviron:
LANG=en_US.UTF-8
PATH=(custom, no user)
SHELL=/usr/bin/zsh
TERM=xterm-256color
XDG_RUNTIME_DIR=<set>
SourcePackage: wireplumber
UpgradeStatus: No upgrade log present (probably fresh install)
** Affects: wireplumber (Ubuntu)
Importance: Undecided
Status: New
** Tags: amd64 apport-bug noble wayland-session
** Patch added: "Screenshot from 2026-10-02 17-27-23.png"
https://bugs.launchpad.net/bugs/2169352/+attachment/6005089/+files/Screenshot%20from%202026-10-02%2017-27-23.png
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2169352
Title:
Analog headphones stop working after idle on Dell Vostro 3520;
disabling suspend avoids the issue
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/wireplumber/+bug/2169352/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs