github / github/app

Voice transcription silently aborts during model-load step (Foundry / nemotron-speech-streaming-en-0.6b) — no ERROR logged, no user feedback

Abierto
#1,037 1 comentario 0 reacciones 0 asignados Ver en GitHub
Bugs
Lenguaje dominante
Sin datos de lenguaje
Estrellas
2.1k
Forks
153
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

> 🤖 *AI response on behalf of Casey*

### Short summary

Voice chat (live transcription) silently aborts during model-load step — no error logged, no user-visible feedback. Affects the local Foundry-hosted `nemotron-speech-streaming-en-0.6b` voice model.

### Affected version or release

0.2.32 (Windows AMD64)

### Installation context

Desktop app, Windows 11, AMD64, microphone: Razer BlackShark V2 X USB. Foundry native library resolved from `C:\Users\cirvine\AppData\Local\Programs\GitHub Copilot`.

### What happened?

While trying to use voice chat in the desktop app, three consecutive voice-transcription sessions failed silently in a ~33 s window at `2026-06-15T13:48 UTC`. The model-load step (between `Checking whether voice model is loaded` and either `Voice model is already loaded` or `Loaded voice model`) never produced a follow-up log line. Instead, native audio capture was stopped 25–60 ms after the “checking…” line, with no error, warning, or user-facing notification — voice chat simply did nothing.

About 7 minutes later (`13:55:19`) a fresh session loaded normally (`Voice model is already loaded` → `Started live transcription session` → `Opened live transcription stream`) and transcription worked again. The underlying Foundry runtime appears to be in a flaky state, but the app treats the failed load as success and tears the session down without telling the user.

**Evidence from app log (`%USERPROFILE%\.copilot\logs\github-app.12440.log`):**

Healthy session (for comparison, 13:55:19) — 12 voice log lines, ends in `Opened live transcription stream`:

```
13:55:19.213 INFO github_app::voice: Starting voice transcription session model_alias=nemotron-speech-streaming-en-0.6b ...
13:55:19.218 INFO github_app::voice: Resolving voice transcription model ...
13:55:19.218 INFO github_app::voice: Starting native voice audio capture input_device=Microphone (Razer BlackShark V2 X USB) ...
13:55:19.221 INFO github_app::voice: Resolved voice transcription model ...
13:55:19.221 INFO github_app::voice: Checking whether voice model is downloaded ...
13:55:19.223 INFO github_app::voice: Voice model is downloaded ...
13:55:19.223 INFO github_app::voice: Checking whether voice model is loaded ...
13:55:19.223 INFO github_app::voice: Voice model is already loaded ...
13:55:19.223 INFO github_app::voice: Creating live transcription session ...
13:55:19.223 INFO github_app::voice: Starting live transcription session ...
13:55:19.330 INFO github_app::voice: Started live transcription session ...
13:55:19.330 INFO github_app::voice: Opened live transcription stream session_id=625f08d4-... ...
```

Failed session 1 (13:48:15) — stops 26 ms after `Checking whether voice model is loaded`, no error:

```
13:48:15.380 INFO github_app::voice: Starting voice transcription session ...
13:48:15.386 INFO github_app::voice: Resolving voice transcription model ...
13:48:15.386 INFO github_app::voice: Starting native voice audio capture input_device=Microphone (Razer BlackShark V2 X USB) source_rate=48000 channels=2 sample_format=F32
13:48:16.608 INFO github_app::voice: Resolved voice transcription model ...
13:48:16.608 INFO github_app::voice: Checking whether voice model is downloaded ...
13:48:16.611 INFO github_app::voice: Voice model is downloaded ...
13:48:16.611 INFO github_app::voice: Checking whether voice model is loaded model_alias=nemotron-speech-streaming-en-0.6b
13:48:16.637 INFO github_app::voice: Stopped native voice audio capture with input levels frames=38 non_silent_frames=0 samples=18240 rms=6.59e-5 peak=0.00375 source_samples=55200 ...

```

Failed sessions 2 & 3 (13:48:31, 13:48:48) — same pattern, but `frames=0 non_silent_frames=0 samples=0 rms=0.0 peak=0.0` (no audio captured at all):

```
13:48:31.341 INFO github_app::voice: Starting voice transcription session ...
13:48:31.346 INFO github_app::voice: Resolving voice transcription model ...
13:48:31.346 INFO github_app::voice: Starting native voice audio capture ...
13:48:31.349 INFO github_app::voice: Resolved voice transcription model ...
13:48:31.349 INFO github_app::voice: Checking whether voice model is downloaded ...
13:48:31.351 INFO github_app::voice: Voice model is downloaded ...
13:48:31.351 INFO github_app::voice: Checking whether voice model is loaded ...
13:48:31.414 INFO github_app::voice: Stopped native voice audio capture with input levels frames=0 non_silent_frames=0 samples=0 rms=0.0 peak=0.0 ...

13:48:48.175 INFO github_app::voice: Starting voice transcription session ...
13:48:48.180 INFO github_app::voice: Resolving voice transcription model ...
13:48:48.180 INFO github_app::voice: Starting native voice audio capture ...
13:48:48.183 INFO github_app::voice: Resolved voice transcription model ...
13:48:48.183 INFO github_app::voice: Checking whether voice model is downloaded ...
13:48:48.242 INFO github_app::voice: Stopped native voice audio capture with input levels frames=0 non_silent_frames=0 samples=0 rms=0.0 peak=0.0 ...
```

**Quantitative signal across this log file (single app run, 13 days):**

| Event | Count |
|---------------------------------------|------:|
| Starting voice transcription session | 127 |
| Resolved voice transcription model | 127 |
| Voice model is downloaded | 126 |
| Voice model is already loaded | 123 |
| Loaded voice model | ~1 |
| Started live transcription session | 124 |
| Opened live transcription stream | 124 |
| Stopping voice transcription session | 124 |

→ 3 sessions never reached `Started live transcription session` and never produced a `Stopping voice transcription session` line; all 3 are the silent failures above.

There are **zero** `ERROR` or `WARN` log lines from `github_app::voice` in the entire log (105 ERROR/WARN entries total, none voice/Foundry related). The only `Foundry` reference is the startup line `Resolved Foundry native library directory path=...\AppData\Local\Programs\GitHub Copilot`.

### Steps to reproduce

Not reliably reproducible from a known trigger, but the consistent log fingerprint when it happens is:

1. Click the voice-input button in the desktop app.
2. Speak (or even just hold it briefly).
3. Release / stop.
4. Nothing happens — no transcription, no error toast, no entry in the chat composer.

Repeating immediately may hit the same failure 2–3 times before recovering (as happened here at 13:48:15, 13:48:31, 13:48:48 → recovered at 13:55:19).

### Expected behavior

Either:
- The voice-model load actually succeeds and the transcription stream starts, OR
- The app emits a structured `ERROR`/`WARN` from `github_app::voice` (with the underlying Foundry/onnxruntime error) AND surfaces a user-visible toast such as "Voice model failed to load — try again" so the user isn't left guessing.

### Additional context

- App version: **0.2.32**
- OS: Windows 11, AMD64
- Input device: Microphone (Razer BlackShark V2 X USB), 48 kHz / 2 ch / F32
- Voice model: `nemotron-speech-streaming-en-0.6b`
- Runtime: Foundry native library at `%LOCALAPPDATA%\Programs\GitHub Copilot`
- Log file: `%USERPROFILE%\.copilot\logs\github-app.12440.log` (lines 461890–461948 for the 3 failed sessions; line 462813+ for the next successful session)
- Possibly related: #737 (onnxruntime.dll load failure on ARM64) — different platform but same general area (Foundry / ONNX-backed local voice model). My case is on AMD64 where onnxruntime is presumably loading correctly most of the time.

**Suggested fix focus:**
1. Add `tracing::error!`/`warn!` in the load-model code path so transient Foundry/ONNX errors are visible in the log instead of swallowed.
2. Propagate the failure to the frontend so the user gets a toast or inline error instead of silence.

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.