{"record":{"id":"d65d1fdb553b51cd","repo":"BerriAI/litellm","slug":"file-sanitization-timeout","errorCode":null,"errorMessage":"File sanitization timeout","messagePattern":"File sanitization timeout","errorType":"http","errorClass":"HTTPException","httpStatus":408,"severity":"error","filePath":"litellm/proxy/guardrails/guardrail_hooks/prompt_security/prompt_security.py","lineNumber":443,"sourceCode":"                    job_id,\n                )\n                return {\n                    \"action\": result.get(\"metadata\", {}).get(\"action\", \"allow\"),\n                    \"content\": result.get(\"content\"),\n                    \"metadata\": result.get(\"metadata\", {}),\n                    \"violations\": result.get(\"metadata\", {}).get(\"violations\", []),\n                }\n            elif status == \"in progress\":\n                verbose_proxy_logger.debug(\n                    \"Prompt Security Guardrail: File sanitization in progress (attempt %d/%d)\",\n                    attempt + 1,\n                    self.max_poll_attempts,\n                )\n                continue\n            else:\n                raise HTTPException(status_code=500, detail=f\"Unexpected sanitization status: {status}\")\n\n        raise HTTPException(status_code=408, detail=\"File sanitization timeout\")\n\n    async def _process_image_url_item(self, item: dict, user_api_key_alias: str | None) -> dict:\n        \"\"\"Process and sanitize image_url items.\"\"\"\n        image_url_data: Final = item.get(\"image_url\", {})\n        url: Final = image_url_data.get(\"url\", \"\") if isinstance(image_url_data, dict) else image_url_data\n\n        if not url.startswith(\"data:\"):\n            return item\n\n        try:\n            header, encoded = url.split(\",\", 1)\n            file_data: Final = base64.b64decode(encoded)\n            mime_type: Final = header.split(\";\")[0].split(\":\")[1]\n            extension: Final = mime_type.split(\"/\")[-1]\n            filename: Final = f\"image.{extension}\"\n\n            sanitization_result: Final = await self.sanitize_file_content(\n                file_data, filename, user_api_key_alias=user_api_key_alias","sourceCodeStart":425,"sourceCodeEnd":461,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/proxy/guardrails/guardrail_hooks/prompt_security/prompt_security.py#L425-L461","documentation":"Error \"File sanitization timeout\" thrown in BerriAI/litellm.","triggerScenarios":"Thrown at litellm/proxy/guardrails/guardrail_hooks/prompt_security/prompt_security.py:443 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Increase the sanitization polling timeout in the guardrail configuration.","Reduce the file size so sanitization completes within the timeout."],"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"}