macOS TS3 client crashes when audio device is removed

Hi,

I’m using the version 3.5.7 (05.03.21 14:30:01) for quite a while now and overall it works quite well, even with beta releases of macOS (currently running 12.1 Beta (21C5021h) for Intel).

There is one really nasty problem though:

(Almost) every time the audio device TS3 currently uses is removed, the client instantly crashes.

This is especially bad when using AirPods, as just taking them off for a moment causes the OS to remove the audio interface.

Unfortunately no macOS crash report window appears after the crash, so I cannot provide any details about where exactly the crash happens.

TS’ own log file contains the following (always the same lines at the end of each log):

INFO    |SoundDevManager|   |Core Audio - Device needs reopeningts3.coreAudio.dummy.playbackdefault
INFO    |Core Audio    |   |No speakers assigned to channels. Please do this in AUDIO MIDI SETUP of osx. Defaulting to stereo for now failure: (0) noErr
INFO    |Core Audio    |   |Opened playback device with 2 channels at 44100 Hz -
DEBUG   |Core Audio    |   |BufferFrameSizeRange = 14,  4096 -
INFO    |SoundDevManager|   |Core Audio - Device needs reopeningts3.coreAudio.dummy.capturedefault
INFO    |Core Audio    |   |Opened capture device with 1 channels at 48000 Hz -
DEBUG   |Core Audio    |   |BufferFrameSizeRange = 15,  4096 -
INFO    |SoundDevManager|   |Core Audio - Device removed90-9C-4A-E2-2F-93:output
INFO    |SoundDevManager|   |Core Audio - Device removed90-9C-4A-E2-2F-93:input

Sometimes (very rarely) the client does not crash, so here is the log of a successful switch from AirPods to the Mac’s internal audio device (yes, it looks just the same):

INFO    |SoundDevManager|   |Core Audio - Device needs reopeningts3.coreAudio.dummy.playbackdefault
INFO    |Core Audio    |   |No speakers assigned to channels. Please do this in AUDIO MIDI SETUP of osx. Defaulting to stereo for now failure: (0) noErr
INFO    |Core Audio    |   |Opened playback device with 2 channels at 44100 Hz - 
DEBUG   |Core Audio    |   |BufferFrameSizeRange = 14,  4096 - 
INFO    |SoundDevManager|   |Core Audio - Device needs reopeningts3.coreAudio.dummy.capturedefault
INFO    |Core Audio    |   |Opened capture device with 1 channels at 48000 Hz - 
DEBUG   |Core Audio    |   |BufferFrameSizeRange = 15,  4096 - 
INFO    |SoundDevManager|   |Core Audio - Device removed90-9C-4A-E2-2F-93:output
INFO    |SoundDevManager|   |Core Audio - Device removed90-9C-4A-E2-2F-93:input

And the log of a successful switch back from the internal audio device to AirPods:

INFO    |SoundDevManager|   |Core Audio - Device needs reopening@»¸j
INFO    |SoundDevManager|   |Core Audio - Device added: 90-9C-4A-E2-2F-93:output
INFO    |SoundDevManager|   |Core Audio - Device added: 90-9C-4A-E2-2F-93:input
INFO    |SoundDevManager|   |Core Audio - Device needs reopeningts3.coreAudio.dummy.playbackdefault
INFO    |Core Audio    |   |Opened playback device with 1 channels at 16000 Hz -
DEBUG   |Core Audio    |   |BufferFrameSizeRange = 5,  4096 -
INFO    |SoundDevManager|   |Core Audio - Device needs reopeningts3.coreAudio.dummy.capturedefault
INFO    |Core Audio    |   |Opened capture device with 1 channels at 16000 Hz -
DEBUG   |Core Audio    |   |BufferFrameSizeRange = 5,  4096 -

There is this suspiciously looking warning “No speakers assigned to channels. Please do this in AUDIO MIDI SETUP of osx. Defaulting to stereo for now failure: (0) noErr”, but since it appears multiple times in the log (even right after the client has been started), I assume it’s not connected to the crash.

As a workaround, I tried to create two input profiles without auto-switching (one with the Mac’s internal audio device chosen, one with the AirPods) and set up two hotkeys to activate them. When I’m first switching to the “internal” profile and then take the AirPods off, the client does not crash, but when I put the AirPods back on and use the other hotkey to switch back to the “AirPods” profile, then the client sometimes crashes (but not as often and reproducible). While doing this, I had the output device set to “Standard”, and it switched back and forth between the output devices without problems.

A post was merged into an existing topic: [BUG] Teamspeak 5 Crashes on AirPods disconnect