BerriAI/litellm · error · HTTPException

Blocked by RepelloAI Argus guardrail. Policies violated: {';

Error message

Blocked by RepelloAI Argus guardrail. Policies violated: {'; '.join(formatted_policies)}.

What it means

Error "Blocked by RepelloAI Argus guardrail. Policies violated: {'; '.join(formatted_policies)}." thrown in BerriAI/litellm.

Source

Thrown at litellm/proxy/guardrails/guardrail_hooks/repelloai/repelloai.py:289

            "RepelloAI Argus returned an unrecognized verdict (%s) - blocking.",
            verdict,
        )
        return True

    def _handle_unreachable(self, error: Exception) -> RepelloAIAnalyzeResponse | None:
        verbose_proxy_logger.warning("RepelloAI Argus unreachable: %s", str(error))
        if self.unreachable_fallback == "fail_closed":
            raise HTTPException(
                status_code=500,
                detail={"error": "RepelloAI Argus guardrail unreachable"},
            )
        return None

    def _raise_if_blocked(self, repelloai_response: RepelloAIAnalyzeResponse | None) -> None:
        if repelloai_response is None:
            return
        if self._verdict_blocks(repelloai_response):
            raise HTTPException(
                status_code=400,
                detail=self._format_blocked_detail(repelloai_response),
            )
        self._log_flagged_verdict(repelloai_response)

    @classmethod
    def _format_blocked_detail(cls, repelloai_response: RepelloAIAnalyzeResponse) -> str:
        policies: Final = repelloai_response.get("policies_violated")
        if not isinstance(policies, list) or not policies:
            return "Blocked by RepelloAI Argus guardrail."

        formatted_policies: Final[list[str]] = []
        for policy in policies:
            policy_name = policy.get("policy_name") or "unknown_policy"
            details: list[str] = []
            action_taken = policy.get("action_taken")
            if action_taken:
                details.append(f"action: {action_taken}")

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. Review the violated policies listed and modify the request content.
  2. Adjust the RepelloAI Argus policy configuration if legitimate traffic is blocked.

When it happens

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

Common situations: See trigger scenarios.


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