{"record":{"id":"be852dca6292e3f3","repo":"NousResearch/hermes-agent","slug":"microphone-access-denied","errorCode":null,"errorMessage":"Microphone access denied.","messagePattern":"Microphone access denied\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"apps/desktop/src/app/chat/composer/hooks/use-mic-recorder.ts","lineNumber":181,"sourceCode":"      tick()\n    } catch {\n      setLevel(0)\n    }\n  }\n\n  const start: MicRecorderHandle['start'] = async (options = {}) => {\n    if (recorderRef.current) {\n      return\n    }\n\n    if (!navigator.mediaDevices?.getUserMedia || typeof MediaRecorder === 'undefined') {\n      throw new Error(copy.microphoneUnsupported)\n    }\n\n    const permitted = await window.hermesDesktop?.requestMicrophoneAccess?.()\n\n    if (permitted === false) {\n      throw new Error(copy.microphoneAccessDenied)\n    }\n\n    let stream: MediaStream\n\n    try {\n      stream = await navigator.mediaDevices.getUserMedia({\n        audio: { echoCancellation: true, noiseSuppression: true }\n      })\n    } catch (error) {\n      throw micError(error, copy)\n    }\n\n    const mimeType =\n      ['audio/webm;codecs=opus', 'audio/webm', 'audio/mp4', 'audio/ogg;codecs=opus', 'audio/ogg', 'audio/wav'].find(\n        type => MediaRecorder.isTypeSupported(type)\n      ) ?? ''\n\n    let recorder: MediaRecorder","sourceCodeStart":163,"sourceCodeEnd":199,"githubUrl":"https://github.com/NousResearch/hermes-agent/blob/c896c09c42910c584c4c7d2325b58c14713ea42c/apps/desktop/src/app/chat/composer/hooks/use-mic-recorder.ts#L163-L199","documentation":"Error \"Microphone access denied.\" thrown in NousResearch/hermes-agent.","triggerScenarios":"Thrown at apps/desktop/src/app/chat/composer/hooks/use-mic-recorder.ts:181 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Grant microphone permission to Hermes Desktop in OS privacy settings, then retry.","Check that no other app has exclusive control of the microphone.","Verify a microphone is connected and selected as the default input device."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"c896c09c42910c584c4c7d2325b58c14713ea42c","analyzedAt":"2026-08-14T17:18:01.089Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}