github / github/app

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

Offen
#1,037 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Bugs
Vorherrschende Sprache
Keine Sprachdaten
Sterne
2.1k
Forks
153
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

> 🤖 *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.

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.