BerriAI/litellm · error · StreamingCallbackError

Blocked by RepelloAI Argus guardrail

Error message

Blocked by RepelloAI Argus guardrail

What it means

Error "Blocked by RepelloAI Argus guardrail" thrown in BerriAI/litellm.

Source

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

            chunks.append(chunk)

        assembled = litellm_main.stream_chunk_builder(  # pyright: ignore[reportUnknownMemberType, reportUnknownVariableType]
            chunks=chunks
        )
        text: Final = self._extract_response_text(assembled) if isinstance(assembled, ModelResponse) else None
        if text:
            repelloai_response: Final = await self._call_analyze(
                text=text,
                stage="response",
                request_data=request_data,
                event_type=event_type,
            )
            if repelloai_response is not None:
                self._log_flagged_verdict(repelloai_response)
            if self._verdict_blocks(repelloai_response):
                from litellm.proxy.proxy_server import StreamingCallbackError

                raise StreamingCallbackError("Blocked by RepelloAI Argus guardrail")
            add_guardrail_to_applied_guardrails_header(request_data=request_data, guardrail_name=self.guardrail_name)
        else:
            verbose_proxy_logger.warning(
                "RepelloAI Argus: no inspectable text in streamed response; skipping scan. "
                "guardrail=%s assembled_type=%s",
                self.guardrail_name,
                type(assembled).__name__,
            )

        for chunk in chunks:
            yield chunk

    @staticmethod
    def _extract_response_text(response: object) -> str | None:
        if _is_object_dict(response):
            response_dict = response
        elif isinstance(response, ModelResponse):
            response_dict = (

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. Modify the request to comply with the RepelloAI Argus guardrail policies.
  2. Check the Argus console for the blocking decision details.

When it happens

Trigger: Thrown at litellm/proxy/guardrails/guardrail_hooks/repelloai/repelloai.py:485 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/e86daab8c8bc50ba. Report an issue: GitHub.