How to Fix Discord Microphone Not Working on Linux (PulseAudio and PipeWire)

By Adhen Prasetiyo

Tuesday, February 17, 2026 • 9 min read

Discord app on Linux showing muted microphone icon with a USB mic on the desk that is not being detected

You join a Discord voice channel on your Linux machine. You can hear everyone. You start talking. Nobody responds. You check — your mic isn’t muted in Discord. You tap it. The input bar doesn’t move. You go to Discord’s Voice Settings, do a mic test, and… nothing. Complete silence.

Or maybe Discord doesn’t even list your microphone at all. Just “Default” and some HDMI output that clearly isn’t a mic.

I’ve been here. Plenty of Linux users have been here. The thing about audio on Linux is that it actually works pretty well — until it doesn’t. And when it breaks, the fix usually isn’t obvious because there are multiple audio layers involved, and Discord interacts with them differently depending on how you installed it.

Let me walk you through the real fixes.

Quick Check: Does Linux Even See Your Mic?

Before blaming Discord, let’s make sure your operating system actually recognizes the microphone hardware.

Open a terminal and run:

arecord -l

You should see something like this:

**** List of CAPTURE Hardware Devices ****

card 1: USB [Blue Yeti], device 0: USB Audio [USB Audio]

  Subdevices: 1/1

  Subdevice #0: subdevice #0

If your mic shows up here, the hardware is fine. Linux sees it. The problem is in the software layer above — PulseAudio or PipeWire.

If nothing is listed:

  • Unplug and replug your USB microphone
  • Try a different USB port
  • For built-in laptop mics, run sudo dmesg | grep -i audio and check if the driver loaded
  • Install the sof-firmware package if you’re on a newer Intel laptop: sudo apt install firmware-sof-signed

Step 1: Check if the Mic Is Muted (It Probably Is)

This catches more people than you’d think. Linux audio has multiple volume controls, and your mic can be muted at the ALSA level even when everything else looks fine.

Using alsamixer (terminal):

alsamixer

Press F4 to switch to the Capture view. Look for your microphone channel. If it shows MM at the bottom, it’s muted. Press Space to unmute it. Use the Up arrow to increase the capture volume.

Press Esc to exit, then save:

sudo alsactl store

Using pavucontrol (graphical — much easier):

Install it if you don’t have it:

sudo apt install pavucontrol

Open it:

pavucontrol

Go to the Input Devices tab. You should see your microphone listed. Make sure:

  • It’s not muted (the speaker icon shouldn’t have a line through it)
  • The volume slider is at 50-80% (not zero, not 100% which can cause distortion)
  • The correct device is listed (if you have multiple inputs)

Here’s the important part: while you have pavucontrol open, start a Discord call or open Discord’s mic test. Then switch to the Recording tab in pavucontrol. You should see Discord appear as an application. Check which input device it’s using — it might be connected to the wrong one.

Step 2: Set the Correct Default Input Device

Your system might have multiple input sources — HDMI audio, webcam mic, the actual microphone you want to use. Discord typically connects to whatever is set as the “default” source, and that default might not be what you think.

List all available input sources:

pactl list short sources

You’ll see something like:

47  alsa_input.usb-Blue_Yeti-00.analog-stereo    PipeWire    s32le 2ch 48000Hz    SUSPENDED

58  alsa_input.pci-0000_00_1f.3.analog-stereo     PipeWire    s32le 2ch 48000Hz    RUNNING

The one with RUNNING is currently active. If it’s the wrong device (like your laptop’s internal mic instead of your USB mic), change the default:

pactl set-default-source alsa_input.usb-Blue_Yeti-00.analog-stereo

Replace the device name with the one that matches your microphone from the list above.

For PipeWire users:

wpctl status

Look under the Sources section. Your mic should be marked with an asterisk (*) as the default. If it’s not:

wpctl set-default SOURCE_ID

Replace SOURCE_ID with the ID number shown next to your mic in wpctl status.

Step 3: Fix Discord-Specific Audio Settings

Open Discord and go to User Settings → Voice & Video.

Input Device: Don’t leave this on “Default.” Manually select your microphone by name. This bypasses the system default and tells Discord exactly which device to use.

Input Mode: If it’s set to “Voice Activity,” try switching to Push to Talk temporarily to test whether the mic is actually working. Sometimes the voice activity threshold is set too high.

Advanced section in Voice & Video:

  • Turn off “Noise Suppression” (Krisp). On Linux, Krisp doesn’t always work correctly and can suppress your entire microphone input.
  • Turn off “Echo Cancellation” while testing.
  • Make sure “Automatic Input Sensitivity” is checked, or manually drag the sensitivity slider to the left so it picks up quieter sounds.

Step 4: Fix Flatpak and Snap Permission Issues

How you installed Discord matters a lot on Linux. The three common methods have different levels of microphone access:

If you installed Discord via .deb (official package):

No special permissions needed. The .deb version runs with full system access. Download it from Discord’s official site.

If you installed Discord via Flatpak:

Flatpak sandboxes applications by default. Your mic might be blocked. Grant it access:

flatpak override --user --device=all com.discordapp.Discord

You can also grant specific permissions:

flatpak override --user --socket=pulseaudio com.discordapp.Discord

Then restart Discord.

To check current permissions:

flatpak info --show-permissions com.discordapp.Discord

If you installed Discord via Snap:

Snap also sandboxes audio. Connect the audio-record interface:

sudo snap connect discord:audio-record

Verify it’s connected:

snap connections discord | grep audio

You should see audio-record listed as connected.

If you keep running into permission issues, honestly, just switch to the .deb version. It’s one less layer of complexity.

Step 5: Restart the Audio Service

After making changes, restart your audio server so everything takes effect:

PulseAudio:

pulseaudio --kill

pulseaudio --start

PipeWire:

systemctl --user restart pipewire pipewire-pulse wireplumber

Then close Discord completely (check your system tray — Discord likes to minimize there instead of actually closing) and reopen it. Join a voice channel or run the mic test in settings.

Step 6: The “Mic Works Everywhere Except Discord” Fix

There’s a specific scenario where your mic works in other apps (like Audacity or OBS) but stays silent in Discord. This usually happens because Discord uses a different audio API or because it’s grabbing an audio device before PipeWire finishes initializing.

Fix: Make sure PulseAudio or PipeWire starts before Discord.

If Discord auto-starts with your desktop, it might launch before the audio service is ready. Add a small delay to Discord’s autostart entry, or just don’t auto-start Discord — open it manually after you’ve logged in and everything has loaded.

Fix: Force Discord to use PulseAudio:

On some PipeWire systems, Discord’s Electron framework doesn’t detect PipeWire correctly. You can force it to use the PulseAudio compatibility layer:

env PULSE_SERVER=unix:/run/user/$(id -u)/pulse/native discord

If this works, you can make it permanent by editing Discord’s .desktop file:

cp /usr/share/applications/discord.desktop ~/.local/share/applications/

nano ~/.local/share/applications/discord.desktop

Find the Exec= line and change it to:

Exec=env PULSE_SERVER=unix:/run/user/1000/pulse/native /usr/bin/discord

Replace 1000 with your user ID (run id -u to check).

Quick Troubleshooting Reference

Symptom Likely Cause Fix
Mic not listed in arecord -l Hardware not detected Try different USB port, install sof-firmware
Mic listed but silent in Discord Muted in ALSA or wrong default source alsamixer → F4 → unmute, or set correct default in pactl
Mic works in other apps but not Discord Discord-specific setting or Flatpak permission Set mic manually in Discord settings, grant Flatpak permissions
Mic input bar doesn’t move at all Input volume at zero Open pavucontrol → Input Devices → raise volume slider
Mic works briefly then stops PipeWire or PulseAudio crash Restart audio: systemctl --user restart pipewire pipewire-pulse wireplumber

Frequently Asked Questions

Discord detects my mic but nobody can hear me. What’s going on?

This is the most common variant of the problem. Open pavucontrol, go to the Recording tab while in a Discord call. Check two things: which input device Discord is using, and whether the volume bar is actually moving when you speak. If the bar doesn’t move, the mic capture volume might be at zero, or Discord is connected to the wrong source. Switch it to your actual mic in that dropdown.

Should I use Flatpak, Snap, or .deb to install Discord?

For the fewest headaches with audio, install the .deb package from Discord’s website. The Flatpak and Snap versions run in sandboxes that often block microphone access by default. If you prefer Flatpak for other reasons, that’s fine — just be ready to manually grant audio permissions.

My mic works on PulseAudio but broke after switching to PipeWire. What happened?

PipeWire handles audio routing differently than PulseAudio. Your default input source may have changed, or PipeWire might need additional configuration. Run wpctl status to check your audio devices and use wpctl set-default to point at the correct mic. Also make sure pipewire-pulse (the PulseAudio compatibility layer) is installed and running — Discord depends on it.

The Krisp noise suppression in Discord seems to mute my mic entirely. Why?

Krisp is Discord’s built-in noise cancellation. On Linux, it’s hit or miss. Some users report it works fine, others find it suppresses their entire microphone input. If you’re troubleshooting mic issues, turn Krisp off first (Voice & Video → Noise Suppression → off). You can always turn it back on once the basic mic works.

That Should Do It

Mic issues on Linux Discord come down to three things: is the hardware detected, is the right input device selected, and does Discord have permission to access it. Check those three in order, and you’ll fix 95% of cases. The remaining 5% is usually a Flatpak/Snap sandbox problem — which goes away if you switch to the .deb package.

If you’re still stuck, check your distro’s forums. The Ubuntu Forums, Linux Mint Forums, and Arch Wiki PipeWire page are excellent resources for distro-specific audio quirks.

Last updated: February 2026 | Tested on Ubuntu 22.04, 24.04, Linux Mint 22, Fedora 41 — with PulseAudio and PipeWire

Step-by-Step Guide

1

Check if your system detects the microphone

Open a terminal and run arecord -l to list all recording devices. If your mic appears, the hardware is detected. If not, check the USB connection or install the correct audio driver.

2

Unmute the mic in alsamixer or pavucontrol

Run alsamixer, press F4 to switch to Capture view, and make sure your mic channel is not muted. Alternatively install and open pavucontrol and check the Input Devices tab.

3

Set the correct input device in PipeWire or PulseAudio

Run pactl list short sources to see all input devices. Set your mic as default with pactl set-default-source followed by the device name.

4

Grant Discord access to the microphone

If using Flatpak Discord, run flatpak override --user --device=all com.discordapp.Discord. If using Snap, run sudo snap connect discord:audio-record.

5

Restart the audio service and test

For PulseAudio run pulseaudio --kill and pulseaudio --start. For PipeWire run systemctl --user restart pipewire pipewire-pulse wireplumber. Reopen Discord and test in Voice Settings.

Frequently Asked Questions

Q1: Discord detects my mic but nobody can hear me. Why?
A1: Your mic is likely routed to the wrong input source in PulseAudio or PipeWire, or the capture volume is set to zero. Open pavucontrol and check both the Input Devices tab and the Recording tab while in a Discord call to verify the correct device is active and the volume is up.
Q2: Should I use the Flatpak, Snap, or .deb version of Discord on Linux?
A2: The .deb version from the official Discord website has the fewest permission issues. Flatpak and Snap versions run in sandboxes that may block microphone access unless you manually grant permissions.
Q3: My mic works in other apps but not in Discord. What's wrong?
A3: Discord may be using a different input device than what you expect. Open Discord Settings, go to Voice & Video, and manually select your microphone from the Input Device dropdown instead of leaving it on Default.
Q4: How do I check if I'm running PulseAudio or PipeWire?
A4: Run pactl info | grep "Server Name" in a terminal. If it shows PulseAudio, you are using PulseAudio. If it shows PulseAudio (on PipeWire), your system uses PipeWire with PulseAudio compatibility.
Adhen Prasetiyo

Research Bug bounty at javahack team

Research Bug bounty Profesional

Web Development Research Bug Hunter
View all articles →