Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

gemini-3.5-flash with generate_content_stream + automatic function calling stops after tool execution and returns empty final text

Aperta
#2,575 3 commenti 0 reazioni 1 assegnatario Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@Venkaiahbabuneelam ci sta già lavorando.

Dal 9/6/2026.

Valutazione

Questa issue non è ancora stata valutata.

Descrizione

priority: p2 type: bug

Summary

When using gemini-3.5-flash with generate_content_stream and automatic function calling enabled, the model executes a tool successfully but then ends the stream with:

  • finish_reason = STOP
  • final candidate content containing only {"text": ""}
  • no visible text
  • no automatic_function_calling_history

The same workflow works with gemini-2.5-flash, and the same logical flow works if we do not rely on AFC streaming.

Date observed

June 9, 2026

Environment

  • Python SDK: google-genai 2.8.0
  • Model: gemini-3.5-flash
  • Method: client.models.generate_content_stream(...)
  • Automatic function calling enabled
  • Python 3.11
  • Also reproduced previously with google-genai 1.50.0

Scenario

We have a tool-based structured-data agent. The expected flow is:

  1. model calls a discovery tool
  2. tool returns a valid candidate
  3. model either continues tool usage or emits final text

In this case, step 2 succeeds, but the model immediately ends the stream with an empty final text candidate.

Minimal observed behavior

User question:

What is the birth rate for SampleTown in 2023?

Tool call executed successfully:

find_metric_candidates(query="birth rate")

Tool result:

{
  "query": "birth rate",
  "result": [
    {
      "id": 101,
      "name": "Crude birth rate",
      "dataset": "public_metrics_table",
      "metric_type": 1,
      "geo_levels": "City, Region, Country",
      "match_source": "name_contains"
    }
  ],
  "row_count": 1
}

But the stream ends with:

{
  "content": {
    "parts": [
      {
        "text": ""
      }
    ],
    "role": "model"
  },
  "finish_reason": "STOP",
  "index": 0
}

No visible text is produced.

Expected behavior

After a successful tool call, the model should either:

  • continue with additional tool calls, or
  • emit a final visible text response

It should not end with STOP and an empty text-only candidate.

Actual behavior

  • tool executes successfully
  • stream returns HTTP 200
  • final chunk has finish_reason=STOP
  • final candidate has text=""
  • no automatic_function_calling_history
  • no visible output

Sanitized diagnostic logs

HTTP Request: POST .../models/gemini-3.5-flash:streamGenerateContent?alt=sse "HTTP/1.1 200 OK"
[Tool] find_metric_candidates called
[Tool] query: birth rate
[Tool] returned 1 row
[DIAG] chunk=1 text_len=0 has_history=False finish_reason=FinishReason.STOP parts=['empty_text']
[DIAG RAW] candidate={'content': {'parts': [{'text': ''}], 'role': 'model'}, 'finish_reason': 'STOP', 'index': 0}

Comparison

  • gemini-2.5-flash works correctly in the same agent/tool flow
  • gemini-3.5-flash fails in AFC streaming mode
  • similar behavior was observed across multiple Gemini 3 family models in this workflow

Workarounds tried

  • prompt changes
  • thinking configuration changes
  • SDK upgrade from 1.50.0 to 2.8.0

The issue still reproduces in AFC streaming mode.

Question

  • Is this a known limitation or bug in gemini-3.5-flash with generate_content_stream + automatic function calling?
  • If this is expected behavior, what is the recommended pattern for Gemini 3.5 in this scenario?
Lingua principale
Python
Stelle
4k
Fork
1k
Merge medio
1g 18h
PR unite (30g)
52

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di googleapis/python-genai

Tutte le issue di googleapis/python-genai

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.