{"record":{"id":"6c2dadda9355f38e","repo":"BerriAI/litellm","slug":"no-corpus-name-in-operation-response-operation-d","errorCode":null,"errorMessage":"No corpus name in operation response: {operation_data}","messagePattern":"No corpus name in operation response: (.+?)","errorType":"exception","errorClass":"Exception","httpStatus":null,"severity":"error","filePath":"litellm/rag/ingestion/vertex_ai_ingestion.py","lineNumber":273,"sourceCode":"            if response.status_code != 200:\n                error_msg = f\"Failed to poll operation: {response.text}\"\n                verbose_logger.error(error_msg)\n                raise Exception(error_msg)\n\n            operation_data = response.json()\n\n            if operation_data.get(\"done\"):\n                # Check for errors\n                if \"error\" in operation_data:\n                    error = operation_data[\"error\"]\n                    raise Exception(f\"Operation failed: {error}\")\n\n                # Extract corpus name from response\n                corpus_name = operation_data.get(\"response\", {}).get(\"name\", \"\")\n                if corpus_name:\n                    return corpus_name\n                else:\n                    raise Exception(f\"No corpus name in operation response: {operation_data}\")\n\n            verbose_logger.debug(\"Operation not done yet, attempt %s/%s\", attempt + 1, max_retries)\n            await asyncio.sleep(retry_delay)\n\n        raise Exception(f\"Operation timed out after {max_retries} attempts\")\n\n    async def _upload_file_to_corpus(\n        self,\n        rag_corpus_id: str,\n        filename: str,\n        file_content: bytes,\n        content_type: str | None,\n    ) -> str:\n        \"\"\"\n        Upload a file to Vertex AI RAG corpus using multipart upload.\n\n        Args:\n            rag_corpus_id: RAG corpus resource name","sourceCodeStart":255,"sourceCodeEnd":291,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/rag/ingestion/vertex_ai_ingestion.py#L255-L291","documentation":"Raised when the Vertex AI operation finished successfully but its response contains no corpus 'name' field, so the caller cannot obtain the rag_corpus_id. Indicates an unexpected/unrecognized response shape from the Vertex AI API.","triggerScenarios":"Thrown at litellm/rag/ingestion/vertex_ai_ingestion.py:273 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Inspect the operation response; the corpus may have failed to create — check Vertex logs and retry."],"exampleFix":null,"handlingStrategy":"try-catch","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"}