VCode home

Retry a dictation that failed

Agents: claude, codex, opencode · On: phone, desktop · optional

When a transcription fails, the clip you just recorded is kept in memory for five minutes. The mic turns into a retry arrow, and one tap sends the same clip again.

Why you would use it

The service was restarting, the tunnel dropped, or your login had expired. You said the words once; the retry sends the same recording rather than making you say them again.

How to use it

  1. A failed transcription shows a toast: <what failed> — tap the mic to retry.

    The toast reading "the voice service is not answering — tap the mic to retry", with the mic now a retry arrow.

  2. The mic (#mic) becomes a retry arrow, labelled Retry the transcription that failed.

    The composer row with the mic replaced by a circular retry arrow.

  3. Tap it on the tab you recorded in. The kept clip goes again. Nothing is recorded by that tap. On every other open tab the mic is dimmed and disabled, labelled Dictating in another tab. If the recording tab was closed, the tab in front takes the retry and the words land there.

  4. If it fails again, the clip is kept again and the arrow stays.

Starting a new recording is not possible while a clip is kept — the tap sends the kept clip, and the other tabs' mics are disabled until it goes. To drop it, wait five minutes, or let a successful transcription clear it.

What you see

Messages that can reach the toast, each followed by — tap the mic to retry:

When the five minutes pass with no retry, the button goes back to the plain mic icon on its own.

An expired login is not a failed transcription: the sign-in card comes up instead, and the clip survives that too.

Options and settings

Option Default What it changes
RETRY_TTL_MS in public/voice.js 300000 (5 minutes) How long a failed clip is offered for a retry. Not configurable
REQUEST_TIMEOUT_MS in lib/voice.js 60000 How long VCode waits on the transcription service before calling it unreachable
UPLOAD_TIMEOUT_MS in public/net.js 120000 How long the phone waits for VCode to return the text

Limits and known gaps