{"record":{"id":"9ef32c849e39f6fa","repo":"huggingface/smolagents","slug":"no-results-found-for-query-query-use-a-less","errorCode":null,"errorMessage":"No results found for query: '{query}'. Use a less restrictive query.","messagePattern":"No results found for query: '(.+?)'\\. Use a less restrictive query\\.","errorType":"exception","errorClass":"Exception","httpStatus":null,"severity":"warning","filePath":"src/smolagents/default_tools.py","lineNumber":223,"sourceCode":"            }\n            base_url = \"https://google.serper.dev/search\"\n        if filter_year is not None:\n            params[\"tbs\"] = f\"cdr:1,cd_min:01/01/{filter_year},cd_max:12/31/{filter_year}\"\n\n        response = requests.get(base_url, params=params)\n\n        if response.status_code == 200:\n            results = response.json()\n        else:\n            raise ValueError(response.json())\n\n        if self.organic_key not in results.keys():\n            if filter_year is not None:\n                raise Exception(\n                    f\"No results found for query: '{query}' with filtering on year={filter_year}. Use a less restrictive query or do not filter on year.\"\n                )\n            else:\n                raise Exception(f\"No results found for query: '{query}'. Use a less restrictive query.\")\n        if len(results[self.organic_key]) == 0:\n            year_filter_message = f\" with filter year={filter_year}\" if filter_year is not None else \"\"\n            return f\"No results found for '{query}'{year_filter_message}. Try with a more general query, or remove the year filter.\"\n\n        web_snippets = []\n        if self.organic_key in results:\n            for idx, page in enumerate(results[self.organic_key]):\n                date_published = \"\"\n                if \"date\" in page:\n                    date_published = \"\\nDate published: \" + page[\"date\"]\n\n                source = \"\"\n                if \"source\" in page:\n                    source = \"\\nSource: \" + page[\"source\"]\n\n                snippet = \"\"\n                if \"snippet\" in page:\n                    snippet = \"\\n\" + page[\"snippet\"]","sourceCodeStart":205,"sourceCodeEnd":241,"githubUrl":"https://github.com/huggingface/smolagents/blob/30bb1161095dbae2271e6bc3cc4c219cc3897a57/src/smolagents/default_tools.py#L205-L241","documentation":"Raised by the search tool's forward when the provider response has no organic-results key and no year filter was applied — i.e. the query returned zero organic results. Note the sibling branch: when the key exists but is empty, the tool returns a message instead of raising, so only the complete absence of organic results raises.","triggerScenarios":"Calling run(query) without filter_year on a query for which the Serper/SerpAPI response omits the organic key entirely.","commonSituations":"Overly restrictive queries, provider API quota/billing issues returning error payloads without organic results, or region/language settings that yield no results.","solutions":["Use a shorter, more general query.","Check the provider dashboard for quota/billing errors — an error payload often lacks the organic key too.","Wrap in try/except and return a retry hint to the calling agent."],"exampleFix":"# before\ntool.run('\"zxy impossible exact phrase\"')\n# after\ntool.run('related broader topic')","handlingStrategy":"retry","validationCode":"null","typeGuard":null,"tryCatchPattern":"try:\n    res = tool.run(q)\nexcept Exception as e:\n    if 'No results found' in str(e): res = tool.run(generalize(q))\n    else: raise","preventionTips":["Prefer broader queries; refine only when results are noisy.","Monitor provider quota — error payloads also lack the organic key."],"tags":["search-tool","empty-results","smolagents"],"backgroundTag":"search-no-results","analyzedSha":"30bb1161095dbae2271e6bc3cc4c219cc3897a57","analyzedAt":"2026-08-28T18:52:54.169Z","schemaVersion":2},"datasetVersion":"2026-08-28T21:17:43.275Z"}