{"record":{"id":"21c134792519de26","repo":"NousResearch/hermes-agent","slug":"speech-to-text-is-disabled-in-settings","errorCode":null,"errorMessage":"Speech-to-text is disabled in settings.","messagePattern":"Speech-to-text is disabled in settings\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"apps/desktop/src/app/session/hooks/use-prompt-actions/index.ts","lineNumber":612,"sourceCode":"\n      if (!attachments.length && SLASH_COMMAND_RE.test(visibleText)) {\n        triggerHaptic('selection')\n        // Forward the explicit target (background queue drain, tile) — dropping\n        // it ran the command against whatever chat happened to be in front.\n        await executeSlashCommand(visibleText, options?.sessionId ? { sessionId: options.sessionId } : undefined)\n\n        return true\n      }\n\n      return await submitPromptText(rawText, options)\n    },\n    [executeSlashCommand, submitPromptText]\n  )\n\n  const transcribeVoiceAudio = useCallback(\n    async (audio: Blob) => {\n      if (!sttEnabled) {\n        throw new Error(copy.sttDisabled)\n      }\n\n      const dataUrl = await blobToDataUrl(audio)\n      const result = await transcribeAudio(dataUrl, audio.type)\n\n      return result.transcript\n    },\n    [copy.sttDisabled, sttEnabled]\n  )\n\n  const cancelRun = useCallback(async () => {\n    // Read from the ref, not the closure-captured `activeSessionId`. The\n    // actions bag is a stable ref mutated in place (Object.assign on each\n    // ContribWiring render), and ChatRoutesSurface is memoized on that stable\n    // ref — so it does NOT re-render when activeSessionId changes, which means\n    // the ChatView element's onCancel prop holds a stale cancelRun closure.\n    // The closure's `activeSessionId` can be a previous session's id (or null\n    // from a new-chat draft), sending session.interrupt to the wrong session.","sourceCodeStart":594,"sourceCodeEnd":630,"githubUrl":"https://github.com/NousResearch/hermes-agent/blob/c896c09c42910c584c4c7d2325b58c14713ea42c/apps/desktop/src/app/session/hooks/use-prompt-actions/index.ts#L594-L630","documentation":"Error \"Speech-to-text is disabled in settings.\" thrown in NousResearch/hermes-agent.","triggerScenarios":"Thrown at apps/desktop/src/app/session/hooks/use-prompt-actions/index.ts:612 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Enable speech-to-text in Settings before using voice input.","Type the prompt instead of dictating it."],"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-15T22:17:37.221Z"}