NousResearch/hermes-agent · error

getUserMedia unavailable for client wake capture

Error message

getUserMedia unavailable for client wake capture

What it means

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

Source

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

  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)
  // ScriptProcessor is deprecated but widely available and simple for PCM export.
  // Buffer size 4096 keeps callback rate reasonable on desktop.
  const processor = context.createScriptProcessor(4096, 1, 1)
  const mute = context.createGain()

View on GitHub (pinned to c896c09c42)

Solutions

  1. Use a runtime that supports getUserMedia (desktop app or modern browser).
  2. Serve the app over a secure context (https or localhost) so getUserMedia is exposed.

When it happens

Trigger: Thrown at apps/desktop/src/lib/wake-client-capture.ts:95 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/85728f818173a83f. Report an issue: GitHub.