# NousResearch/hermes-agent · Local STT CUDA failures and CPU fallback handling

## Open now

- Nothing open on GitHub.

These items concern local speech-to-text crashing or failing to fall back to CPU when CUDA or cuBLAS libraries are unavailable, misconfigured, or unsupported (e.g., Apple Silicon, WSL2, Blackwell GPUs). Several also touch TUI voice mode stability and related transcription robustness issues.

## TL;DR

- 12 member(s): 0 open issue(s), 6 closed issue(s), 0 open PR(s), 2 merged PR(s), 4 PR(s) closed without merging.
- A fix was merged to main in PR #20897. Verify it addresses your case.
- **Recommended:** read PR #20897 (and any competing PRs below) before filing. Confirm the merged change covers your symptom.

## Maintainer resolution verdict

- Internal-tracker verdict over this cluster's issue members: `partially_resolved` · deciding PR(s): `pr-20897,pr-73510`. This is distinct from the fix status above. Weigh it yourself.

## How this cluster was grouped

- Link evidence (`STRUCTURAL_PARTIAL`): some members are connected by structural evidence (shared changed files, or a closing/superseded reference); the rest are joined by an automated relevance judgement over their text.
- Members outside that structural core may belong to a different underlying problem.
- Pairwise link density `0.14`: the share of member pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. `1.00` means every pair is linked.

## Closed / duplicate issues

- #2885: \[Bug\]: Local STT crashes with RuntimeError on systems without system-wide CUDA 12 libs (WSL2, venv-only CUDA)
- #6102: Question: should local STT retry on CPU int8 when faster-whisper hits cuBLAS runtime errors?
- #13568: \[Bug\]: Local STT should reuse CPU fallback after cuBLAS runtime failure
- #15462: TUI voice mode: Python crash on 2nd transcription (cTranslate2/OpenBLAS threading conflict)
- #17526: STT: faster-whisper CUBLAS_STATUS_NOT_SUPPORTED on RTX 5090 (Blackwell sm_120) bypasses CPU fallback
- #28622: Gateway voice notes crash Python on Apple Silicon/Rosetta local STT

## Prior & competing PRs

- **#13571: fix(stt): reuse CPU fallback after CUDA runtime failure**. closed without merge · fix tier `suggested`
  - maintainer direction: category `uncategorized`; implication `needs_llm`
  - _suggested-tier fix detail withheld; re-request with `?tier=all` to include it._
- **#20897: fix(tui): restore voice push-to-talk parity**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`; implication `superseded`
  - files: `hermes_cli/voice.py`, `tests/hermes_cli/test_voice_wrapper.py`, `tests/test_tui_gateway_server.py`, `tui_gateway/server.py`, `ui-tui/src/__tests__/useInputHandlers.test.ts`, `ui-tui/src/app/useInputHandlers.ts`, `ui-tui/src/gatewayTypes.ts`
- **#73510: fix(stt): provider robustness — device config, CUDA fallbacks, container normalization (SILK/m4a), lazy-install recovery**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`; implication `superseded`
  - files: `contributors/emails/[redacted:email]`, `contributors/emails/[redacted:email]`, `contributors/emails/[redacted:email]`, `contributors/emails/[redacted:email]`, `contributors/emails/[redacted:email]`, `contributors/emails/[redacted:email]`, `gateway/run.py`, `tests/gateway/test_stt_config.py`, `tests/tools/test_managed_media_gateways.py`, `tests/tools/test_transcription_command_providers.py`, `tests/tools/test_transcription_plugin_dispatch.py`, `tests/tools/test_transcription_tools.py`, `tests/tools/test_tts_pythonpath_fallback.py`, `tests/tools/test_voice_mode.py`, `tools/lazy_deps.py`, `tools/transcription_tools.py`, `tools/tts_tool.py`, `tools/voice_mode.py`
- **#2890: fix: graceful CUDA fallback for local STT (fixes #2885)**. closed without merge
  - maintainer direction: category `stale_abandoned`; implication `active`
- **#16189: fix(tui): restore classic CLI voice push-to-talk parity**. closed without merge
  - maintainer direction: category `uncategorized`; implication `needs_llm`
- **#28624: fix: avoid local STT crash on Apple Silicon**. closed without merge
  - maintainer direction: category `merged_via`; implication `superseded`; refs `c0c5dac531`, `#73510`

## Fix status

- Merged to main in PR #20897 (cited above). No release data is tracked. Verify downstream.
- Fix last verified (merged) `2026-07-28`.
- Subsystem: `agent`
