{"record":{"id":"6d6c332ce0696e4e","repo":"BerriAI/litellm","slug":"document-sanitization-failed-e","errorCode":null,"errorMessage":"Document sanitization failed: {e}","messagePattern":"Document sanitization failed: (.+?)","errorType":"http","errorClass":"HTTPException","httpStatus":500,"severity":"error","filePath":"litellm/proxy/guardrails/guardrail_hooks/prompt_security/prompt_security.py","lineNumber":561,"sourceCode":"                    sanitized_encoded: Final = base64.b64encode(\n                        sanitized_content if isinstance(sanitized_content, bytes) else sanitized_content.encode()\n                    ).decode()\n\n                    if url.startswith(\"data:\") and header:\n                        sanitized_url: Final = f\"{header},{sanitized_encoded}\"\n                        if isinstance(doc_data, dict):\n                            doc_data[\"url\"] = sanitized_url\n                    elif isinstance(doc_data, dict):\n                        doc_data[\"data\"] = sanitized_encoded\n\n                    verbose_proxy_logger.info(\"Document content modified by Prompt Security\")\n\n            return item\n        except HTTPException:\n            raise\n        except Exception as e:\n            verbose_proxy_logger.error(\"Error sanitizing document: %s\", e)\n            raise HTTPException(status_code=500, detail=f\"Document sanitization failed: {e}\")\n\n    async def process_message_files(self, messages: list, user_api_key_alias: str | None = None) -> list:\n        \"\"\"Process messages and sanitize any file content (images, documents, PDFs, etc.).\"\"\"\n        processed_messages: Final = []\n\n        for message in messages:\n            content = message.get(\"content\")\n\n            if not isinstance(content, list):\n                processed_messages.append(message)\n                continue\n\n            processed_content = []\n            for item in content:\n                if isinstance(item, dict):\n                    item_type = item.get(\"type\")\n                    if item_type == \"image_url\":\n                        item = await self._process_image_url_item(item, user_api_key_alias)","sourceCodeStart":543,"sourceCodeEnd":579,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/proxy/guardrails/guardrail_hooks/prompt_security/prompt_security.py#L543-L579","documentation":"Error \"Document sanitization failed: {e}\" thrown in BerriAI/litellm.","triggerScenarios":"Thrown at litellm/proxy/guardrails/guardrail_hooks/prompt_security/prompt_security.py:561 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check proxy logs for the underlying exception during document sanitization.","Verify the document format and size are supported."],"exampleFix":null,"handlingStrategy":null,"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"}