{"record":{"id":"e86daab8c8bc50ba","repo":"BerriAI/litellm","slug":"blocked-by-repelloai-argus-guardrail","errorCode":null,"errorMessage":"Blocked by RepelloAI Argus guardrail","messagePattern":"Blocked by RepelloAI Argus guardrail","errorType":"exception","errorClass":"StreamingCallbackError","httpStatus":null,"severity":"error","filePath":"litellm/proxy/guardrails/guardrail_hooks/repelloai/repelloai.py","lineNumber":485,"sourceCode":"            chunks.append(chunk)\n\n        assembled = litellm_main.stream_chunk_builder(  # pyright: ignore[reportUnknownMemberType, reportUnknownVariableType]\n            chunks=chunks\n        )\n        text: Final = self._extract_response_text(assembled) if isinstance(assembled, ModelResponse) else None\n        if text:\n            repelloai_response: Final = await self._call_analyze(\n                text=text,\n                stage=\"response\",\n                request_data=request_data,\n                event_type=event_type,\n            )\n            if repelloai_response is not None:\n                self._log_flagged_verdict(repelloai_response)\n            if self._verdict_blocks(repelloai_response):\n                from litellm.proxy.proxy_server import StreamingCallbackError\n\n                raise StreamingCallbackError(\"Blocked by RepelloAI Argus guardrail\")\n            add_guardrail_to_applied_guardrails_header(request_data=request_data, guardrail_name=self.guardrail_name)\n        else:\n            verbose_proxy_logger.warning(\n                \"RepelloAI Argus: no inspectable text in streamed response; skipping scan. \"\n                \"guardrail=%s assembled_type=%s\",\n                self.guardrail_name,\n                type(assembled).__name__,\n            )\n\n        for chunk in chunks:\n            yield chunk\n\n    @staticmethod\n    def _extract_response_text(response: object) -> str | None:\n        if _is_object_dict(response):\n            response_dict = response\n        elif isinstance(response, ModelResponse):\n            response_dict = (","sourceCodeStart":467,"sourceCodeEnd":503,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/proxy/guardrails/guardrail_hooks/repelloai/repelloai.py#L467-L503","documentation":"Error \"Blocked by RepelloAI Argus guardrail\" thrown in BerriAI/litellm.","triggerScenarios":"Thrown at litellm/proxy/guardrails/guardrail_hooks/repelloai/repelloai.py:485 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Modify the request to comply with the RepelloAI Argus guardrail policies.","Check the Argus console for the blocking decision details."],"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-14T00:17:10.932Z"}