-
-
Notifications
You must be signed in to change notification settings - Fork 52.6k
Closed as not planned
Closed as not planned
Copy link
Labels
bugSomething isn't workingSomething isn't working
Description
Bug Report
Summary
The macOS app (Clawdbot.app) crashes with SIGABRT when enabling Voice Wake or Talk Mode on a Mac mini that has no microphone or audio input device connected.
Environment
- App version: 2026.1.23 (build 7750)
- macOS: 26.2 (build 25C56)
- Hardware: Mac mini (Mac16,10 / Apple Silicon)
- Audio devices: Output only (built-in speakers + HDMI monitor). No input devices.
Steps to Reproduce
- Install Clawdbot.app on a Mac mini with no microphone connected
- Enable Voice Wake from the menu bar → app crashes immediately
- Relaunch (after resetting preferences) → enable Talk Mode → same crash
Crash Details
The crash occurs in AVAudioEngine when the app attempts to install an audio tap on a node without an available input device:
Exception: EXC_CRASH (SIGABRT)
Termination: Abort trap: 6
Backtrace (Voice Wake):
+[NSException raise:format:]
AVAudioEngineImpl::InstallTapOnNode(...)
-[AVAudioNode installTapOnBus:bufferSize:format:block:]
VoiceWakeRuntime.start(with:)
VoiceWakeRuntime.refresh(state:)
closure #2 in AppState.init(preview:)
Backtrace (Talk Mode):
AVAudioEngineImpl::InstallTapOnNode(...)
-[AVAudioNode installTapOnBus:bufferSize:format:block:]
TalkModeRuntime.startRecognition()
TalkModeRuntime.start()
TalkModeController.setEnabled(_:)
closure #3 in AppState.init(preview:)
Impact
- The crash happens during
AppState.init, so the app cannot relaunch once the preference is saved — it enters a crash loop. - Resetting preferences via
defaults delete com.clawdbot.macis required to recover. - Revoking the Microphone permission via
tccutil resetdoes not prevent the crash — the app attempts to install the tap regardless of TCC status.
Expected Behavior
The app should check for the availability of an audio input device before calling installTapOnBus:bufferSize:format:block:. If no input device is present:
- Voice Wake and Talk Mode should be disabled / greyed out in the UI
- Or at minimum, the
installTapcall should be wrapped in a do/catch to prevent a crash loop
Suggested Fix
guard AVAudioSession.sharedInstance().availableInputs?.isEmpty == false else {
// No input device — disable voice features gracefully
return
}
// or on macOS, check AVCaptureDevice.default(for: .audio) != nilCrash Reports
Full .ips crash reports available on request.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working