{"record":{"id":"45b67751c97f1031","repo":"BerriAI/litellm","slug":"failed-to-create-file-search-store-response-text","errorCode":null,"errorMessage":"Failed to create File Search store: {response.text}","messagePattern":"Failed to create File Search store: (.+?)","errorType":"exception","errorClass":"Exception","httpStatus":null,"severity":"error","filePath":"litellm/rag/ingestion/gemini_ingestion.py","lineNumber":160,"sourceCode":"        request_body: Final = {\"displayName\": display_name}\n\n        client: Final = get_async_httpx_client(\n            llm_provider=httpxSpecialProvider.RAG,\n            params={\"timeout\": 60.0},\n        )\n        response: Final = await client.post(\n            url,\n            json=request_body,\n            headers={\n                \"Content-Type\": \"application/json\",\n                \"x-goog-api-key\": api_key,\n            },\n        )\n\n        if response.status_code != 200:\n            error_msg: Final = f\"Failed to create File Search store: {response.text}\"\n            verbose_logger.error(error_msg)\n            raise Exception(error_msg)\n\n        response_data: Final = response.json()\n        store_name: Final = response_data.get(\"name\", \"\")\n\n        verbose_logger.debug(\"Created File Search store: %s\", store_name)\n        return store_name\n\n    async def _upload_to_file_search_store(\n        self,\n        api_key: str,\n        base_url: str,\n        vector_store_id: str,\n        filename: str,\n        file_content: bytes,\n        content_type: str | None,\n    ) -> str:\n        \"\"\"\n        Upload a file to Gemini File Search store using resumable upload.","sourceCodeStart":142,"sourceCodeEnd":178,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/rag/ingestion/gemini_ingestion.py#L142-L178","documentation":"Non-200 response from the Gemini File Search create-store POST: the API rejected creating the file-search-capable store, and the full response body is embedded as '{response.text}'. Common causes are an invalid API key, quota limits, or an invalid display name; the response text distinguishes them.","triggerScenarios":"Thrown at litellm/rag/ingestion/gemini_ingestion.py:160 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the response text for the API error, verify API key and quotas, and retry."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8","analyzedAt":"2026-08-18T11:44:31.656Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}