Hi Gemini API team,
We’re building a meeting transcription system for a construction company in Taiwan (Mandarin Chinese meetings, typically 3–3.5 hours). We’re seeing reproducible empty, blocked responses on long audio and would appreciate help diagnosing the cause.
Setup (identical across all tests)
- Model:
gemini-3.8-flash(Gemini Developer API, not Vertex AI) - Endpoint:
v1beta/models/gemini-3.8-flash:generateContent, direct REST (Pythonurllib, no SDK) - Audio uploaded via Files API (resumable), referenced with
file_data, MIMEaudio/m4a(AAC) temperature=0,maxOutputTokens=65536
Results
| Input | Input tokens | Requests | Non-empty |
|---|---|---|---|
| 29 min (1,753 s) | 44,164 | 22 | 12 (5× OTHER, 4× STOP with empty text, 1× MALFORMED_RESPONSE) |
| 30 min chunks of the 195-min file | 45,178 | 3 | 1 (2× OTHER) |
| 100 min segments (×2) | ~150,000 | 2 | 0 — both OTHER |
| 195 min full file | ~292,600 | 6 | 0 — all OTHER |
| 195 min file, prompt asks for one 30-min window | 292,548 | 2 | 1 (window 1 OK; window 2 OTHER) |
All failures: HTTP 200, promptFeedback.blockReason=OTHER, zero candidates, no finishReason, no safetyRatings in the response.
The strongest comparison: the 195-min full-file runs (5 attempts) used the same prompt hash as the successful 29-min runs, so model, prompt, MIME, Files API and generation settings were held constant; only audio duration/input size differed.
Questions
- What service-side conditions produce HTTP 200 +
blockReason=OTHERwith zero candidates for audio input? Can you tell whether these were policy/safety blocks, media-processing limits, or inference failures? - Is there a practical audio duration or audio-token limit for
gemini-3.8-flashthat is lower than the nominal context limit? Is a ~3h15m recording expected to work in one request? - Is “upload the full file once, then request separate time windows (00:00–00:30, 00:30–01:00, …)” a supported pattern? Are there known limits on time-range accuracy or speaker-label consistency across requests?
- Even at 29–30 min, about 45% of calls with identical inputs returned
OTHER,MALFORMED_RESPONSE, orfinishReason=STOPwith no text (only thought tokens counted). So this does not look like a pure duration limit. Is this a known issue? - For multi-hour meetings, does Google recommend a specific architecture (chunk length, separate diarization)?
Sample responseIds (OTHER):
- 195 min full file:
FGzAapPMKP__qtsP_bWC..,8GzAauezEICoqtsP3L2Pq..,1dXiaovxNJO6juMPiaL..(2026-10-03 ~02:48–03:03 UTC) - 100 min segments:
KdjiauqQObin694Pkrzsi..,VNniavD4G56DjuMP7f-I.. - 195 min file, late window:
WN7iaqu8DNbKmNMP3t3zm..(early window succeeded:ut3iarvoJtXu694P-ffqq..) - 29 min:
9Hu_aryZApmy9tMP3ZPZcA,kXy_arz4NZbu2roPuYGN0..(2026-10-02 ~09:40 UTC)
We have full sanitized metadata for 35 requests. Original audio and transcripts are confidential and can’t be shared.
Thanks!