Voice chat never connects: steamwebhelper throws NotFoundError for every microphone
Summary
Steam voice chat never connects — the UI sits on "Connecting..." indefinitely. Every
attempt to acquire a microphone in steamwebhelper fails with:
SteamUI: ERROR: Uncaught (in promise) NotFoundError: Requested device not found
This happens for every device in the Voice settings dropdown, including Default.
The client connects to PipeWire's PulseAudio server successfully and is granted unrestricted access, but never creates a record stream. Because device acquisition
never completes, ICE never starts, and the connection UI hangs forever.
A stock system Chromium on the same machine, using the same Chromium audio backend
against the same audio server, captures from the same devices without any problem
(verified with WebRTC calls on meet.jit.si and with mictests.com).
System
Distro
CachyOS Linux
Kernel
7.1.6-1-cachyos
Session
Wayland / KDE Plasma — Steam runs under XWayland (X Server Vendor: The X.Org Foundation, X Window Manager: KWin)
Steam Runtime
steam-runtime_1.0.20260618.246542
Steam package
steam 1.0.0.87-1 (native, not Flatpak or Snap)
Steam client
1785799196 (stable) and 1785979169 (public beta) — both affected
pipewire
1:1.6.8-1.1
pipewire-pulse
1:1.6.8-1.1
pipewire-alsa
1:1.6.8-1.1
wireplumber
0.5.15-1.1
easyeffects
8.2.8-1.1
Microphone
Blue Microphones (USB, 046D:0AB7)
Steam → Help → System Information
Computer Information:
Manufacturer: Micro-Star International Co., Ltd.
Model: MEG X570 UNIFY (MS-7C35)
Form Factor: Desktop
Processor Information:
CPU Brand: AMD Ryzen 9 5950X 16-Core Processor
32 logical processors / 16 physical processors
Operating System:
CachyOS (64 bit)
Kernel Version: 7.1.6-1-cachyos
X Server Vendor: The X.Org Foundation
X Window Manager: KWin
Steam Runtime Version: steam-runtime_1.0.20260618.246542
Client Information:
Version: 1785799196
Video Card:
Driver: AMD Radeon RX 6700 XT (radeonsi, navi22, ACO, DRM 3.64, 7.1.6-1-cachyos)
Driver Version: 4.6 (Compatibility Profile) Mesa 26.1.6-arch3.1
Sound card:
Audio device: ATI R6xx HDMI
Memory:
RAM: 32001 Mb
Steps to reproduce
Open Steam → Settings → Voice.
Select any microphone from the dropdown, including Default.
Use the microphone test, or start a voice chat with a friend.
Expected
Microphone is acquired; the level meter responds; voice chat connects.
Actual
The level meter never moves. Voice chat displays "Connecting..." indefinitely and
never progresses. webhelper_js.txt logs a NotFoundError on each attempt.
Logs
~/.local/share/Steam/logs/webhelper_js.txt:
[20:33:33] SteamUI: WARNING: Error reporter does not know how to parse generated stack:
[20:33:33] SteamUI: WARNING: undefined
[20:33:33] SteamUI: ERROR: Uncaught (in promise) NotFoundError: Requested device not found
[20:43:51] SteamUI: ERROR: Uncaught (in promise) NotFoundError: Requested device not found
~/.local/share/Steam/logs/cef_log.txt:
WARNING:capture_device_ranking.h(255)] Can't initialize the value of
media.audio_input.user_preference_ranking because media.default_audio_capture_device
isn't registered
INFO:CONSOLE(0)] "Uncaught (in promise) NotFoundError: Requested device not found",
source: https://steamloopback.host/index.html
INFO:audio_manager_pulse.cc(216)] Not implemented!
~/.local/share/Steam/logs/steamui_audio.txt logs SinkAdded events only — no
corresponding source/input enumeration is ever logged.
Diagnostic evidence
steamwebhelper connects to the audio server and is unrestricted.pw-dump Client:
It never creates a record stream.pactl list source-outputs shows no
source-output belonging to steamwebhelper at any point, including while the Voice
settings mic test is open. The system Chromium, by contrast, creates one immediately
on getUserMedia().
No media UDP is ever opened, consistent with acquisition failing before ICE
gathering. All of steamwebhelper's UDP sockets are mDNS:
Microphone / audio graph — the same devices capture correctly in system
Chromium (mictests.com, and a full WebRTC call on meet.jit.si with working
two-way audio).
PipeWire permissions — every client, including steamwebhelper, reports pipewire.access = unrestricted. No portal/Flatpak restriction is in effect.
Device selection / stale ids — fails on every entry in the dropdown, selected
fresh from the live list, including Default.
Network — STUN reachable (stun.l.google.com:19302 returns a valid
XOR-MAPPED-ADDRESS); WebRTC media works end-to-end in a browser on the same host.
DNS — all Steam hostnames resolve identically to a reference resolver.
VPN — a VPN with default-bypass split tunnelling is active, but affected
traffic egresses over plain LAN, and browser WebRTC over the same path works.
Client build — reproduces identically on stable 1785799196 and public beta 1785979169.
Stale client state — reproduces after full client restart with no leftover
processes, and after the CEF profile directory (config/htmlcache) was recreated
from scratch.
Notes
The machine has a custom PipeWire loopback node (a virtual microphone mixing mic +
desktop audio). It is not the cause: the failure occurs identically with Default
and with plain hardware devices selected, and third-party browsers capture from both
the hardware device and the virtual node without issue.
Historically this problem appeared intermittently and could be cleared by
unplugging and replugging the USB microphone — which suggests a stale internal
device list in the embedded Chromium. Since early August 2026 that workaround no
longer has any effect and the failure is persistent.
Voice chat never connects: steamwebhelper throws NotFoundError for every microphone
Summary
Steam voice chat never connects — the UI sits on "Connecting..." indefinitely. Every
attempt to acquire a microphone in
steamwebhelperfails with:This happens for every device in the Voice settings dropdown, including
Default.The client connects to PipeWire's PulseAudio server successfully and is granted
unrestrictedaccess, but never creates a record stream. Because device acquisitionnever completes, ICE never starts, and the connection UI hangs forever.
A stock system Chromium on the same machine, using the same Chromium audio backend
against the same audio server, captures from the same devices without any problem
(verified with WebRTC calls on meet.jit.si and with mictests.com).
System
X Server Vendor: The X.Org Foundation,X Window Manager: KWin)steam-runtime_1.0.20260618.246542steam 1.0.0.87-1(native, not Flatpak or Snap)1785799196(stable) and1785979169(public beta) — both affected046D:0AB7)Steam → Help → System Information
Steps to reproduce
Default.Expected
Microphone is acquired; the level meter responds; voice chat connects.
Actual
The level meter never moves. Voice chat displays "Connecting..." indefinitely and
never progresses.
webhelper_js.txtlogs aNotFoundErroron each attempt.Logs
~/.local/share/Steam/logs/webhelper_js.txt:~/.local/share/Steam/logs/cef_log.txt:~/.local/share/Steam/logs/steamui_audio.txtlogsSinkAddedevents only — nocorresponding source/input enumeration is ever logged.
Diagnostic evidence
steamwebhelper connects to the audio server and is unrestricted.
pw-dump Client:It never creates a record stream.
pactl list source-outputsshows nosource-output belonging to
steamwebhelperat any point, including while the Voicesettings mic test is open. The system Chromium, by contrast, creates one immediately
on
getUserMedia().No media UDP is ever opened, consistent with acquisition failing before ICE
gathering. All of steamwebhelper's UDP sockets are mDNS:
Ruled out
Each of these was tested and eliminated:
Chromium (mictests.com, and a full WebRTC call on meet.jit.si with working
two-way audio).
pipewire.access = unrestricted. No portal/Flatpak restriction is in effect.fresh from the live list, including
Default.stun.l.google.com:19302returns a validXOR-MAPPED-ADDRESS); WebRTC media works end-to-end in a browser on the same host.
traffic egresses over plain LAN, and browser WebRTC over the same path works.
1785799196and public beta1785979169.processes, and after the CEF profile directory (
config/htmlcache) was recreatedfrom scratch.
Notes
The machine has a custom PipeWire loopback node (a virtual microphone mixing mic +
desktop audio). It is not the cause: the failure occurs identically with
Defaultand with plain hardware devices selected, and third-party browsers capture from both
the hardware device and the virtual node without issue.
Historically this problem appeared intermittently and could be cleared by
unplugging and replugging the USB microphone — which suggests a stale internal
device list in the embedded Chromium. Since early August 2026 that workaround no
longer has any effect and the failure is persistent.
excerpt-cef_log.txt
excerpt-webhelper_js.txt