I’m seeing intermittent no-audio responses from Gemini TTS preview.
For the same request, the API sometimes returns HTTP 200 with:
{
"content": {},
"finishReason": "OTHER",
"usageMetadata": {
"promptTokenCount": 713,
"candidatesTokenCount": 5516
}
}
There is no inlineData.data audio payload, even though usageMetadata reports audio tokens.
Later, the exact same request can succeed with:
{
"finishReason": "STOP",
"usageMetadata": {
"promptTokenCount": 713,
"candidatesTokenCount": 4925
}
}
and includes valid inlineData.data audio.
Context:
- Model:
gemini-3.1-flash-tts-preview
- Endpoint:
generateContent
- Modality:
responseModalities: ["AUDIO"]
- Voice:
Kore
- Input: Hebrew text
- Client: reproduced both from Python GenAI SDK and curl
Minimal repro / discussion:
https://discuss.ai.google.dev/t/gemini-tts-preview-returns-http-200-with-usagemetadata-but-no-audio-payload/145337
Question:
Is finishReason: OTHER with empty content expected/retryable for Gemini TTS preview, or does it indicate a prompt/request issue?
I’m seeing intermittent no-audio responses from Gemini TTS preview.
For the same request, the API sometimes returns HTTP 200 with:
{ "content": {}, "finishReason": "OTHER", "usageMetadata": { "promptTokenCount": 713, "candidatesTokenCount": 5516 } }There is no
inlineData.dataaudio payload, even thoughusageMetadatareports audio tokens.Later, the exact same request can succeed with:
{ "finishReason": "STOP", "usageMetadata": { "promptTokenCount": 713, "candidatesTokenCount": 4925 } }and includes valid
inlineData.dataaudio.Context:
gemini-3.1-flash-tts-previewgenerateContentresponseModalities: ["AUDIO"]KoreMinimal repro / discussion:
https://discuss.ai.google.dev/t/gemini-tts-preview-returns-http-200-with-usagemetadata-but-no-audio-payload/145337
Question:
Is
finishReason: OTHERwith emptycontentexpected/retryable for Gemini TTS preview, or does it indicate a prompt/request issue?