-
-
Notifications
You must be signed in to change notification settings - Fork 52.6k
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