BerriAI/litellm · error · HTTPException

File sanitization timeout

Error message

File sanitization timeout

What it means

Error "File sanitization timeout" thrown in BerriAI/litellm.

Source

Thrown at litellm/proxy/guardrails/guardrail_hooks/prompt_security/prompt_security.py:443

                    job_id,
                )
                return {
                    "action": result.get("metadata", {}).get("action", "allow"),
                    "content": result.get("content"),
                    "metadata": result.get("metadata", {}),
                    "violations": result.get("metadata", {}).get("violations", []),
                }
            elif status == "in progress":
                verbose_proxy_logger.debug(
                    "Prompt Security Guardrail: File sanitization in progress (attempt %d/%d)",
                    attempt + 1,
                    self.max_poll_attempts,
                )
                continue
            else:
                raise HTTPException(status_code=500, detail=f"Unexpected sanitization status: {status}")

        raise HTTPException(status_code=408, detail="File sanitization timeout")

    async def _process_image_url_item(self, item: dict, user_api_key_alias: str | None) -> dict:
        """Process and sanitize image_url items."""
        image_url_data: Final = item.get("image_url", {})
        url: Final = image_url_data.get("url", "") if isinstance(image_url_data, dict) else image_url_data

        if not url.startswith("data:"):
            return item

        try:
            header, encoded = url.split(",", 1)
            file_data: Final = base64.b64decode(encoded)
            mime_type: Final = header.split(";")[0].split(":")[1]
            extension: Final = mime_type.split("/")[-1]
            filename: Final = f"image.{extension}"

            sanitization_result: Final = await self.sanitize_file_content(
                file_data, filename, user_api_key_alias=user_api_key_alias

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. Increase the sanitization polling timeout in the guardrail configuration.
  2. Reduce the file size so sanitization completes within the timeout.

When it happens

Trigger: Thrown at litellm/proxy/guardrails/guardrail_hooks/prompt_security/prompt_security.py:443 when the library encounters an invalid state.

Common situations: See trigger scenarios.

Understand the failure class


AI-assisted analysis of BerriAI/litellm@77b7c6c40c (2026-08-18). Data as JSON: /api/errors/d65d1fdb553b51cd. Report an issue: GitHub.