Skip to content

macOS app crashes when opening Voice settings (MicLevelMonitor audio format mismatch) #5099

@CrossGen-ai

Description

@CrossGen-ai

Summary

The macOS app crashes immediately when clicking the Voice tab in settings. The crash occurs in MicLevelMonitor.start() when trying to install an audio tap on the input node.

Crash Details

AVAudioIONodeImpl::SetOutputFormat(unsigned long, AVAudioFormat*)
AUGraphNodeBaseV3::CreateRecordingTap(...)
AVAudioEngineImpl::InstallTapOnNode(...)
-[AVAudioNode installTapOnBus:bufferSize:format:block:]
MicLevelMonitor.start(onLevel:)
VoiceWakeSettings.restartMeter()

Environment

  • macOS 15.3
  • OpenClaw 2026.1.29 (8345)
  • Mac Studio (Mac15,14)
  • Audio setup: Multiple USB audio interfaces, Aggregate Device as default input

Root Cause

The app appears to request a specific audio format for the tap that doesn't match the system's input format. With complex audio setups (aggregate devices, high sample rates like 768kHz from BlackHole), this causes SetOutputFormat to throw.

Suggested Fix

Instead of specifying a format when calling installTapOnBus, query the input node's native format:

let format = inputNode.outputFormat(forBus: 0)
inputNode.installTap(onBus: 0, bufferSize: 1024, format: format) { ... }

Or handle the exception gracefully and disable the mic level meter if it fails, rather than crashing the entire app.

Workaround Attempted

  • Changed default input to Blue Yeti (48kHz) - still crashes
  • Granted Microphone/Speech Recognition permissions manually - still crashes

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingstaleMarked as stale due to inactivity

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions