-
-
Notifications
You must be signed in to change notification settings - Fork 68.9k
[Bug]: [macOS] Companion app crashes on launch when configured Swabble mic is unavailable #23162
Description
Summary
The macOS companion app crashes immediately on launch if the audio device configured as the Swabble (voice wake) microphone is disconnected or unavailable. The crash is unhandled — the app throws SIGABRT with no graceful fallback or user-facing error.
Steps to reproduce
- Configure Swabble with a USB microphone (e.g. Logitech C922 Pro Stream Webcam)
- Quit the companion app
- Unplug the USB mic
- Reopen the companion app → crashes immediately
Expected behavior
App should launch successfully and either: (a) disable Swabble automatically with a notification that the configured mic is unavailable, or (b) fall back to the system default mic.
Actual behavior
Exception: EXC_CRASH (SIGABRT) — abort() called
Bundle: ai.openclaw.mac.debug 2026.2.17 (12195)
macOS: 26.3 (25D125) — ARM64
AVAudioEngineImpl::InstallTapOnNode(...) + 1556 ← throws NSException
-[AVAudioNode installTapOnBus:bufferSize:format:block:] + 608
VoiceWakeRuntime.start(with:) + 2636
VoiceWakeRuntime.refresh(state:) + 1
closure #2 in AppState.init(preview:) + 1
Workaround:
defaults write ai.openclaw.mac.debug "openclaw.swabbleEnabled" -bool false
OpenClaw version
2026.2.21
Operating system
macOS
Install method
nom global + Mac app
Logs, screenshots, and evidence
Impact and severity
No response
Additional information
Additional context
• Configured mic preference key: openclaw.voiceWakeMicID in ai.openclaw.mac.debug domain
• The crash loops if you click "Reopen" in the macOS crash dialog — the app will keep crashing until the mic is reconnected or Swabble is disabled via the workaround above
• Setting openclaw.swabbleEnabled = false in ai.openclaw.mac (non-debug domain) has no effect — the app reads from ai.openclaw.mac.debug