Google search tool not working

,

We’re utilising the grounding with google search (https://ai.google.dev/gemini-api/docs/google-search) and noticed today the results are no longer coming through. The queries appear to be empty strings in the response metadata too;

"groundingMetadata": {
  "webSearchQueries": [
    "",
    "",
    "",
    ""
  ]
}

Anyone else noticing a similar issue? Have tried with all the latest gemini models (pro, flash and lite).

5 Likes

We are experiencing the same issue, and it’s causing instability in our application. This is the first time we’ve encountered this problem. We’re hoping for a quick resolution.

3 Likes

Same here. 0 sources.

2 Likes

I am facing same issue here 26-04-08 23:05:51 | WARNING | app.tools.web_search_tool | _run_google:261 | web_search[google] candidate dump: Candidate(
content=Content(
role=‘model’
),
finish_reason=<FinishReason.STOP: ‘STOP’>,
grounding_metadata=GroundingMetadata(
web_search_queries=[
‘Rocket Lab RKLB fiscal year end’,
]
),
index=0
)

2 Likes

what we’re even experiencing here is hallucinated results. so many

1 Like

Same thing. I have noticed that it returns results ONLY for weather(sometimes) and for the datetime in cities across the globe. nothing more.

But! At the same time, Gemini 2.5 Pro actually yields some results. But it’s very strange. I tried it multiple times, no difference in strangeness at all.

Full response:

{‘location’: ‘Minsk, Minsk City, Belarus’, ‘temperature’: ‘3’, ‘unit’: ‘Celsius’, ‘weather’: ‘Clear’}

www\.britannica.com/animal/spider-arachnid: “Spiders are arachnids, and all arachnids have eight legs.”

www\.iupac.org/what-we-do/periodic-table-of-elements/

www\.nist.gov/pml/atomic-weights-and-isotopic-compositions-relative-atomic-masses

www\.simplyrecipes.com/recipes/homemade_pancakes/

www\.foodnetwork.com/recipes/everyday-italian/pancakes-recipe-1917444

www\.allrecipes.com/recipe/21014/good-old-fashioned-pancakes/

www\.cia.gov/the-world-factbook/references/standard-atomic-weights/

www\.thoughtco.com/how-many-legs-do-spiders-have-1968548: “Spiders are arachnids, and all adult arachnids have eight legs.”

en\.wikipedia.org/wiki/Standard_atomic_weight: “The standard atomic weight (Ar°) of a chemical element is the weighted arithmetic mean of the relative isotopic masses of all isotopes of that element weighted by each isotope’s abundance on Earth. For example, isotope 63Cu (69.15%) and 65Cu (30.85%) are the two most common isotopes of copper, which leads to a standard atomic weight of 63.546.”

[A BUNCH OF REAL URLs]

www\.inaturalist.org/taxa/47118-Araneae: “Like other arachnids, spiders have eight legs.” {‘location’: ‘Minsk, Minsk City, Belarus’, ‘temperature’: ‘3’, ‘unit’: ‘Celsius’, ‘weather’: ‘Clear’}

www\.britannica.com/animal/spider-arachnid: “Spiders are arachnids, and all arachnids have eight legs.”

www\.thoughtco.com/how-many-legs-do-spiders-have-1968548: “Spiders are arachnids, and all adult arachnids have eight legs.”

[A BUNCH OF REAL URLs]

www\.inaturalist.org/taxa/47118-Araneae: “Like other arachnids, spiders have eight legs.”

www\.usgs.gov/faqs/how-many-legs-do-spiders-have: “Spiders are arachnids, and they all have 8 legs.”

www\.burkemuseum.org/collections-and-research/biology/arachnology-and-entomology/spider-myths/myth-spiders-are-insects: "Spiders are not insects, they are arachnids. Arachnids have eight legs, and their bodies are divided into two main parts."BВот результаты по вашим запросам:

**Сколько ног у паука по данным сайтов по биологии?**

Согласно сайтам по биологии, у пауков восемь ног. Пауки относятся к классу арахнидов, а у всех взрослых арахнидов восемь ног.

**Стандартная атомная масса кислорода 2026**

Поиск не дал результатов по стандартной атомной массе кислорода на 2026 год. Стандартная атомная масса элемента — это средневзвешенное значение масс всех его изотопов с учётом их распространённости на Земле. Эти значения периодически пересматриваются Международным союзом теоретической и прикладной химии (IUPAC).

**Рецепт классических блинов**

Вот простой рецепт классических блинов:

**Ингредиенты:**

* 1 1/2 стакана муки

* 2 столовые ложки сахара

* 2 чайные ложки разрыхлителя

* 1/2 чайной ложки соды

* 1/2 чайной ложки соли

* 1 1/4 стакана молока

* 2 больших яйца

* 4 столовые ложки растопленного сливочного масла

**Приготовление:**

1. В большой миске смешайте муку, сахар, разрыхлитель, соду и соль.

2. В другой миске взбейте молоко и яйца, затем вмешайте растопленное сливочное масло.

3. Влейте влажные ингредиенты в сухие и перемешайте до однородности.

4. Разогрейте слегка смазанную маслом сковороду на среднем огне.

5. Выливайте на сковороду по 1/4 стакана теста на каждый блин.

6. Жарьте до появления пузырьков, затем переверните и жарьте до золотистого цвета.

**Текущая погода в Минске**

В Минске сейчас ясно, температура воздуха 3°C.

Search Suggestions and Sources(at the bottom of message)

Sources

1. Current time information in Minsk, BY.

Google Search Suggestions

Display of Search Suggestions is required when using Grounding with Google Search. Learn more

  • how many legs does a spider have acco

  • Standard atomic weight of Oxygen

  • The recipe for classic pancake

  • Current weather in Minsk

same here -
Starting today (April 8, 2026), all requests to gemini-2.0-flash with google_search grounding return only triple backticks (```)
instead of actual content.

Setup:

  • Model: gemini-2.0-flash via v1beta endpoint
  • Tool: {“google_search”: {}}
  • SDK: @google/generative-ai 0.24.1
  • Also reproduced via direct REST API (curl)

What happens:

  • HTTP 200 (no error)
  • finishReason: STOP (looks successful)
  • webSearchQueries is populated — the search actually fires
  • groundingChunks: — empty, no results come back
  • Response text: just ``` followed by newline (4 characters)

What should happen:

  • Full grounded response with search results and citations
  • This worked correctly yesterday (April 8)

Reproduction (minimal curl):
curl “https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=YOUR_KEY”
-H “Content-Type: application/json”
-d ‘{“contents”:[{“parts”:[{“text”:“What is the latest news about Apple stock?”}]}],“tools”:[{“google_search”:{}}]}’

Confirmed NOT our code:

  • Same model without google_search tool (pure mode) returns full responses
  • Tested via both SDK and raw REST — same result
  • No changes to our codebase between yesterday (working) and today (broken)
1 Like

Same. Nothing changed from my end, but my app stop returning correct information because the search grounding is not working. I went to Google AI studio and try their tools, it’s not working as well. Seems like the Search Grounding tool & URL context search are not working.

3 Likes

can someone log a ticket as I dont have a support agreement. I had to put in an emergency fix in my production app to handle the situation when google grounding has this error vs pure ai

This is not working in Google AI Studio either.

I’ve already moved to Vertex AI. The tools seem to work here.

Google Grounding is working now. Thanks whoever fixed it.

1 Like

same here

We’re using the google-genai Python SDK (v1.69.0) with Google Search grounding configured via Tool(google_search=GoogleSearch()). The model generates substantive answers that clearly draw on web knowledge, but the response’s grounding_metadata is always empty — zero grounding_chunks, zero grounding_supports, and web_search_queries is None.

Having the same issue, it seems grounding is down. This is breaking my workflows.. Okease reoirt

This is worked for me as well

Hi everyone ,
I wanted to check if this is something which is still not working for anyone ?
If yes, could you also share which model you are using ?

**Update: April 10 — model capacity rotation confirmed, gemini-2.5-flash now affected**

Following up on our [earlier diagnostics]( Search grounding not working - recent regression · Issue #2249 · googleapis/python-genai · GitHub ). We now have 48h of data showing a new pattern: **capacity rotation between models**.

### Production workload (Apr 10, 00:00-03:00 UTC)

Application running `gemini-2.5-flash` as primary + `gemini-2.5-flash-lite` as fallback (switched from `gemini-3-flash-preview` after Apr 9 failures). SDK 1.67.0, 18 parallel tasks each making multiple `generate_content` calls with `google_search` tool.

| Metric | Value |

|--------|-------|

| Tasks completed | **18/18 (100%)** |

| Search grounding retries | 114 |

| Search grounding primary model success | 79% |

| Reasoning call retries | **0** |

| Reasoning primary model success | 75% |

| Error breakdown | 298× `503 UNAVAILABLE`, 7× `504 DEADLINE_EXCEEDED`, 2× `429 RATE_LIMIT` |

All tasks completed but with significant retry overhead — 87% of retries concentrated in first 15 minutes (burst of concurrent requests at startup).

### Isolated model test (Apr 10, ~08:00 UTC)

Same diagnostic script as before. SDK **1.71.0**, timeout 60s, 6 models × sequential (2 calls) + concurrent (6 parallel calls). Each call: `generate_content()` with `Tool(google_search=GoogleSearch())`.

| Model | Sequential w/ search | Concurrent w/ search (6x) | Sequential w/o search | Concurrent w/o search (6x) |

|-------|---------------------|---------------------------|----------------------|----------------------------|

| gemini-2.5-flash-lite | **2/2 OK** (3s) | **6/6 OK** (2-5s) | 2/2 OK | 6/6 OK |

| gemini-2.5-flash | **0/2 ERROR** (503) | **0/6 ERROR** (503) | **0/2 ERROR** (503) | **0/6 ERROR** (503) |

| gemini-2.5-pro | 1/2 (503) | **0/6 ERROR** (503) | 0/2 (503) | 1/6 (503) |

| gemini-3-flash-preview | **1/2** (44s + 504) | **5/6 OK** (14-35s) | **2/2 OK** (7-37s) | **6/6 OK** (8-31s) |

| gemini-3.1-flash-lite-preview | **2/2 OK** (5-9s) | **6/6 OK** (6-10s) | 2/2 OK | 6/6 OK |

| gemini-3.1-pro-preview | **2/2 OK** (19-38s) | **6/6 OK** (19-32s) | 2/2 OK | 6/6 OK |

### Key finding: capacity rotation

Comparing our Apr 9 and Apr 10 isolated tests (same script, same API key, same prompts):

| Model | Apr 9 sequential search | Apr 10 sequential search | Change |

|-------|------------------------|--------------------------|--------|

| gemini-2.5-flash | **2/2 OK** | **0/2 ERROR** | **degraded** |

| gemini-3-flash-preview | **0/2 ERROR** | **1/2 OK** | **recovered** |

And the timeline across all our data points:

| Time (UTC) | gemini-2.5-flash | gemini-3-flash-preview |

|------------|-------------------|------------------------|

| Apr 9 13:25 | **OK** (2/2 seq) | **DEAD** (0/2 seq, 3/6 conc) |

| Apr 10 00:00 | **79% primary** (prod session) | not tested |

| Apr 10 08:00 | **DEAD** (0/16 total) | **RECOVERED** (8/10 total) |

This is **not a binary outage** — it’s dynamic GPU capacity reallocation between models. A model working at 00:00 UTC can be completely unavailable at 08:00 UTC, with no warning or status page update.

### Models unaffected by rotation

Three models showed **100% success rate** across both days, both sequential and concurrent:

- `gemini-2.5-flash-lite`

- `gemini-3.1-flash-lite-preview`

- `gemini-3.1-pro-preview`

These appear to have dedicated/stable capacity, while `gemini-2.5-flash` and `gemini-3-flash-preview` share a contested pool.

### Impact

For production workloads depending on Google Search grounding, the capacity rotation makes it impossible to reliably choose a model. Our application’s fallback mechanism masks this for end users, but at the cost of ~114 wasted retries per session and 2-3x longer processing times.

**Question for the team:** Is there a way to query model availability/health before sending requests? An endpoint returning current capacity status would let us route to available models proactively instead of discovering failures through retries.

I’m experiencing the same problem. It seems as though every time the agent tries a search it gets stuck and I have to manually intervene and stop it.

1 Like