Skip to content

Instantly share code, notes, and snippets.

@metrovoc
Last active March 14, 2026 17:40
Show Gist options
  • Select an option

  • Save metrovoc/0b5e3590c6069cf99b01559863bc2ce4 to your computer and use it in GitHub Desktop.

Select an option

Save metrovoc/0b5e3590c6069cf99b01559863bc2ce4 to your computer and use it in GitHub Desktop.
macOS Tahoe audio glitch workaround: kill all CoreAudio clients + daemons to restore degraded audio without reboot

macOS Tahoe Audio Glitch: Diagnosis & Workaround

Symptom

On macOS Tahoe (26.x, tested on 26.3 / M3 MacBook Air), system audio gradually degrades over time — volume drops significantly and sound becomes muffled across all outputs (built-in speakers, Bluetooth headphones, etc.) at the same volume setting.

  • Onset is intermittent: anywhere from hours to days after a clean reboot.
  • coreaudiod sometimes shows elevated CPU usage during the degraded state.
  • A full reboot reliably restores normal audio. The issue then eventually recurs.

What doesn't work

  • sudo killall coreaudiod: Does not resolve the issue. In my experience, each restart of coreaudiod appeared to make the CPU usage slightly worse, suggesting the problem compounds with repeated restarts.
  • Toggling sample rate (48000 ↔ 44100 via Audio MIDI Setup): No effect in my case.
  • pmset sleepnow (sleep/wake cycle): Did not help either.

Key observation

When I killed all audio daemon processes (coreaudiod, audiomxd, audioclocksyncd, etc.) without killing audio client processes first, the audio would recover for approximately 1 second before immediately degrading again. This strongly suggests that one or more audio client processes hold some corrupted state that gets re-applied to the freshly restarted audio stack.

When I killed all processes using CoreAudio (clients + daemons together), audio recovered and remained normal.

What works

Kill all CoreAudio client processes first, then restart all audio daemons:

# 1. Find and kill all user processes that have CoreAudio loaded
lsof 2>/dev/null | grep CoreAudio | awk '{print $2}' | sort -un | xargs kill -9 2>/dev/null

# 2. Kill Xcode/CoreSimulator if running (known to exacerbate the issue)
killall Xcode SimulatorTrampoline com.apple.CoreSimulator.CoreSimulatorService simdiskimaged 2>/dev/null

# 3. Restart all audio daemons (not just coreaudiod)
sudo killall -9 coreaudiod audiomxd audioclocksyncd audioanalyticsd audioaccessoryd AudioComponentRegistrar

See fixaudio.sh for a ready-to-use shell function.

Environment & possible contributing factors

These may or may not be relevant — listed for completeness:

  • macOS Tahoe 26.3 (25D125), Apple M3 MacBook Air
  • Data migrated between machines (Air M3 → Pro M4 Pro → back to Air M3). Migration left behind ghost audio device entries (BlackHole, Zoom virtual device, old Bluetooth devices) in /Library/Preferences/Audio/com.apple.audio.SystemSettings.plist.
  • Bluetooth headphones (Bose QC Ultra 2 HP) frequently connected/disconnected.
  • Xcode and CoreSimulator services running in the background. Multiple community reports indicate Xcode/Simulator can amplify Tahoe audio issues.

Status

This is a workaround, not a root fix. The underlying cause appears to be a bug in macOS Tahoe's CoreAudio stack. Apple has reportedly addressed some audio issues in 26.1, but the problem persists through 26.3 in my environment.

I have not yet identified which specific client app is the primary culprit. The watchdog is running and I'll update this if I find out.

#!/bin/bash
# fixaudio — workaround for macOS Tahoe audio degradation bug
# Kills all CoreAudio clients + all audio daemons to restore normal audio.
#
# Usage: source this file and run `fixaudio`, or add the function to your .zshrc/.bashrc.
# Requires sudo for killing system audio daemons.
fixaudio() {
sudo -v || return 1
local skip="coreaudiod|audiomxd|audioclocksyncd|audioanalyticsd|audioaccessoryd|AudioComponentRegistrar|audio.DriverHelper|audio.SandboxHelper|ParrotAudioPlugin"
echo "=== Audio clients ==="
lsof 2>/dev/null | grep CoreAudio | awk '{print $2, $1}' | sort -t' ' -k1,1 -un | grep -vE "$skip" | while read pid name; do
echo " kill $name ($pid)"
kill -9 "$pid" 2>/dev/null
done
killall Xcode SimulatorTrampoline com.apple.CoreSimulator.CoreSimulatorService simdiskimaged 2>/dev/null
sleep 1
echo "=== Audio daemons ==="
sudo killall -9 coreaudiod audiomxd audioclocksyncd audioanalyticsd audioaccessoryd AudioComponentRegistrar 2>/dev/null
echo " killed all audio daemons"
sleep 2
echo "=== Done. coreaudiod PID: $(pgrep coreaudiod) ==="
}
@tcleveland93-jpg
Copy link

Hahahaha

@hberberoglu
Copy link

Try to update Xcode to version 26.3 (17C529)

@RealDyllon
Copy link

just encountered this on 15.7.4 - the fix still works

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment