{"record":{"id":"d48118b61e20d233","repo":"BerriAI/litellm","slug":"self-class-name-does-not-support-ingesti","errorCode":null,"errorMessage":"{self.__class__.__name__} does not support ingesting an existing file_id. Upload file data or provide file_url instead.","messagePattern":"(.+?) does not support ingesting an existing file_id\\. Upload file data or provide file_url instead\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"litellm/rag/ingestion/base_ingestion.py","lineNumber":325,"sourceCode":"            file_url: URL to fetch file from\n            file_id: Existing file ID to use\n\n        Returns:\n            RAGIngestResponse with status and IDs\n\n        Raises:\n            ValueError: If no input source is provided\n        \"\"\"\n        # Step 1: Upload (raises ValueError if no input provided)\n        filename, file_content, content_type, existing_file_id = await self.upload(\n            file_data=file_data,\n            file_url=file_url,\n            file_id=file_id,\n        )\n\n        try:\n            if existing_file_id and not self.supports_existing_file_id:\n                raise ValueError(\n                    f\"{self.__class__.__name__} does not support ingesting an existing file_id. \"\n                    \"Upload file data or provide file_url instead.\"\n                )\n\n            # Step 2: OCR (optional)\n            extracted_text: Final = await self.ocr(\n                file_content=file_content,\n                content_type=content_type,\n            )\n\n            # Step 3: Chunking\n            chunks: Final = self.chunk(\n                text=extracted_text,\n                file_content=file_content,\n                ocr_was_used=self.ocr_config is not None,\n            )\n\n            # Step 4: Embedding (optional - some providers handle this internally)","sourceCodeStart":307,"sourceCodeEnd":343,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/rag/ingestion/base_ingestion.py#L307-L343","documentation":"Capability guard in the RAG ingestion pipeline: a file_id was given (re-use an existing uploaded file) but this ingestion backend sets supports_existing_file_id=False, so it cannot attach previously uploaded files. Use file_data or file_url with this provider, or switch to a backend that supports file ids (e.g. OpenAI).","triggerScenarios":"Thrown at litellm/rag/ingestion/base_ingestion.py:325 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Upload file data or provide a file_url instead of an existing file_id for this provider."],"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-14T05:17:10.506Z"}