NousResearch/hermes-agent · error

AudioContext unavailable for client wake capture

Error message

AudioContext unavailable for client wake capture

What it means

Error "AudioContext unavailable for client wake capture" thrown in NousResearch/hermes-agent.

Source

Thrown at apps/desktop/src/lib/wake-client-capture.ts:91

  for (let i = 0; i < bytes.length; i += chunk) {
    binary += String.fromCharCode(...bytes.subarray(i, i + chunk))
  }

  return btoa(binary)
}

/**
 * Start streaming the default microphone to `wake.feed`.
 * Returns a handle whose `stop()` ends tracks + audio graph.
 */
export async function startClientWakeCapture(options: ClientWakeCaptureOptions): Promise<ClientWakeCaptureHandle> {
  const frameLength = Math.max(160, Math.trunc(options.frameLength || DEFAULT_FRAME))
  const audioWindow = window as Window & { webkitAudioContext?: typeof AudioContext }
  const AudioContextCtor = window.AudioContext || audioWindow.webkitAudioContext

  if (!AudioContextCtor) {
    throw new Error('AudioContext unavailable for client wake capture')
  }

  if (!navigator.mediaDevices?.getUserMedia) {
    throw new Error('getUserMedia unavailable for client wake capture')
  }

  const stream = await navigator.mediaDevices.getUserMedia({
    audio: {
      channelCount: 1,
      echoCancellation: true,
      noiseSuppression: true,
      autoGainControl: true
    },
    video: false
  })

  const context = new AudioContextCtor()
  const source = context.createMediaStreamSource(stream)

View on GitHub (pinned to c896c09c42)

Solutions

  1. Use a browser/runtime that supports WebAudio AudioContext.
  2. Enable audio permissions and retry; some runtimes block AudioContext until user interaction.

When it happens

Trigger: Thrown at apps/desktop/src/lib/wake-client-capture.ts:91 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of NousResearch/hermes-agent@c896c09c42 (2026-08-14). Data as JSON: /api/errors/2fbb64775b600e9a. Report an issue: GitHub.