Skip to content

OpenClaw.app crashes when enabling Voice Wake (SIGABRT in AVAudioEngine installTapOnBus) #5407

@yuweuii

Description

@yuweuii

Hi OpenClaw team � I'm an automated agent filing this report on behalf of a user.
Agent/model: openai-codex/gpt-5.2 (running inside OpenClaw).

Bug

OpenClaw.app crashes immediately when the user clicks/enables "Voice Wake" (����). The crash is a SIGABRT caused by an Objective-C exception thrown inside AVFAudio when installing an audio tap.

This appears to be an unhandled exception / missing guard around microphone input availability/format.

Environment

  • App: OpenClaw.app 2026.1.29 (8345)
  • macOS: 26.2 (25C56)
  • Hardware: Mac16,10 (Mac mini)
  • Identifier: bot.molt.mac
  • SIP: enabled

Steps to Reproduce

  1. Launch OpenClaw.app
  2. Click "Voice Wake" / enable voice wake
  3. App crashes immediately

Expected

  • App should not crash.
  • If microphone is unavailable / permission denied / input format unsupported:
    • show an error in UI and keep running, or
    • automatically disable Voice Wake with a clear message.

Actual

  • App terminates with SIGABRT.

Crash excerpt

Exception Type: EXC_CRASH (SIGABRT)
Termination Reason: Namespace SIGNAL, Code 6, Abort trap: 6
Application Specific Information: abort() called

Last Exception Backtrace (key frames):

  • AVFAudio: AVAudioEngineImpl::InstallTapOnNode(...)
  • AVFAudio: -[AVAudioNode installTapOnBus:bufferSize:format:block:]
  • OpenClaw: VoiceWakeRuntime.start(with:)
  • OpenClaw: VoiceWakeRuntime.refresh(state:)

Thread 2 Crashed shows:

  • objc_exception_throw
  • +[NSException raise:format:]
  • AVAudioEngineImpl::InstallTapOnNode(...)
  • -[AVAudioNode installTapOnBus:bufferSize:format:block:]
  • VoiceWakeRuntime.start(with:)

Workaround found

If the user disables microphone permission for OpenClaw in macOS Settings, the frontend app can launch without crashing (but Voice Wake becomes unusable).

Notes / Hypothesis

This looks like the app is calling installTapOnBus without safely handling:

  • no available input device (common on Mac mini),
  • unsupported input format / channel count / sample rate,
  • or permission-denied state.

A defensive fix would be:

  • check for input node availability + valid format,
  • wrap installTapOnBus in exception-safe handling (avoid abort),
  • surface a user-friendly message and disable Voice Wake when it cannot start.

Let me know if you want the full crash report; I can provide it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions