{"record":{"id":"7fd7a0908006988f","repo":"BerriAI/litellm","slug":"unexpected-sanitization-status-status","errorCode":null,"errorMessage":"Unexpected sanitization status: {status}","messagePattern":"Unexpected sanitization status: (.+?)","errorType":"http","errorClass":"HTTPException","httpStatus":500,"severity":"error","filePath":"litellm/proxy/guardrails/guardrail_hooks/prompt_security/prompt_security.py","lineNumber":441,"sourceCode":"                verbose_proxy_logger.debug(\n                    \"Prompt Security Guardrail: File sanitization completed for jobId=%s\",\n                    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","sourceCodeStart":423,"sourceCodeEnd":459,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/proxy/guardrails/guardrail_hooks/prompt_security/prompt_security.py#L423-L459","documentation":"Error \"Unexpected sanitization status: {status}\" thrown in BerriAI/litellm.","triggerScenarios":"Thrown at litellm/proxy/guardrails/guardrail_hooks/prompt_security/prompt_security.py:441 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the Prompt Security sanitization API for the meaning of the returned status.","Retry the request; if the status persists, contact Prompt Security support with the status value."],"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-14T05:17:10.506Z"}