{"record":{"id":"3f216adcd613808b","repo":"BerriAI/litellm","slug":"document-blocked-by-prompt-security-violations","errorCode":null,"errorMessage":"Document blocked by Prompt Security. Violations: {', '.join(violations)}","messagePattern":"Document blocked by Prompt Security\\. Violations: (.+?)","errorType":"http","errorClass":"HTTPException","httpStatus":400,"severity":"error","filePath":"litellm/proxy/guardrails/guardrail_hooks/prompt_security/prompt_security.py","lineNumber":535,"sourceCode":"                filename = \"document.pdf\"\n            elif \"word\" in mime_type or \"docx\" in mime_type:\n                filename = \"document.docx\"\n            elif \"excel\" in mime_type or \"xlsx\" in mime_type:\n                filename = \"document.xlsx\"\n            else:\n                extension: Final = mime_type.split(\"/\")[-1]\n                filename = f\"document.{extension}\"\n\n            verbose_proxy_logger.info(\"Sanitizing document: %s\", filename)\n\n            sanitization_result: Final = await self.sanitize_file_content(\n                file_data, filename, user_api_key_alias=user_api_key_alias\n            )\n            action: Final = sanitization_result.get(\"action\")\n\n            if action == \"block\":\n                violations: Final = sanitization_result.get(\"violations\", [])\n                raise HTTPException(\n                    status_code=400,\n                    detail=f\"Document blocked by Prompt Security. Violations: {', '.join(violations)}\",\n                )\n\n            if action == \"modify\":\n                sanitized_content: Final = sanitization_result.get(\"content\", \"\")\n                if sanitized_content:\n                    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","sourceCodeStart":517,"sourceCodeEnd":553,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/proxy/guardrails/guardrail_hooks/prompt_security/prompt_security.py#L517-L553","documentation":"Error \"Document blocked by Prompt Security. Violations: {', '.join(violations)}\" thrown in BerriAI/litellm.","triggerScenarios":"Thrown at litellm/proxy/guardrails/guardrail_hooks/prompt_security/prompt_security.py:535 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Remove the violating content from the document.","Review the Prompt Security document policies that produced the violations."],"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"}