BerriAI/litellm · error · GuardrailRaisedException

Vigil Guard returned an unrecognized decision.

Error message

Vigil Guard returned an unrecognized decision.

What it means

Error "Vigil Guard returned an unrecognized decision." thrown in BerriAI/litellm.

Source

Thrown at litellm/proxy/guardrails/guardrail_hooks/vigil_guard/vigil_guard.py:180

                    result_texts + list(texts[index:]),
                    inputs.get("tool_calls"),
                )

            decision = analysis.get("decision") if isinstance(analysis, dict) else None
            if decision not in _VALID_DECISIONS:
                verbose_proxy_logger.error(
                    "Vigil Guard unrecognized decision for guardrail_name=%s source=%s: %r",
                    self.guardrail_name,
                    source,
                    decision,
                )
                if self.unreachable_fallback == "fail_open":
                    return self._build_output(
                        inputs,
                        result_texts + list(texts[index:]),
                        inputs.get("tool_calls"),
                    )
                raise GuardrailRaisedException(
                    guardrail_name=self.guardrail_name,
                    message="Vigil Guard returned an unrecognized decision.",
                    should_wrap_with_default_message=False,
                )

            if decision == "BLOCKED":
                raise GuardrailRaisedException(
                    guardrail_name=self.guardrail_name,
                    message=self._build_block_reason(analysis),
                    should_wrap_with_default_message=False,
                )

            if decision == "SANITIZED":
                result_texts.append(self._resolve_sanitized_text(text, analysis))
            else:
                result_texts.append(text)

        result_tool_calls = inputs.get("tool_calls")

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. Check the Vigil Guard backend response; it returned a decision outside the expected set.
  2. Verify the proxy and Vigil Guard backend versions are compatible.

When it happens

Trigger: Thrown at litellm/proxy/guardrails/guardrail_hooks/vigil_guard/vigil_guard.py:180 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/b61ecb8d8cdd5f89. Report an issue: GitHub.