{"record":{"id":"b61ecb8d8cdd5f89","repo":"BerriAI/litellm","slug":"vigil-guard-returned-an-unrecognized-decision","errorCode":null,"errorMessage":"Vigil Guard returned an unrecognized decision.","messagePattern":"Vigil Guard returned an unrecognized decision\\.","errorType":"exception","errorClass":"GuardrailRaisedException","httpStatus":null,"severity":"error","filePath":"litellm/proxy/guardrails/guardrail_hooks/vigil_guard/vigil_guard.py","lineNumber":180,"sourceCode":"                    result_texts + list(texts[index:]),\n                    inputs.get(\"tool_calls\"),\n                )\n\n            decision = analysis.get(\"decision\") if isinstance(analysis, dict) else None\n            if decision not in _VALID_DECISIONS:\n                verbose_proxy_logger.error(\n                    \"Vigil Guard unrecognized decision for guardrail_name=%s source=%s: %r\",\n                    self.guardrail_name,\n                    source,\n                    decision,\n                )\n                if self.unreachable_fallback == \"fail_open\":\n                    return self._build_output(\n                        inputs,\n                        result_texts + list(texts[index:]),\n                        inputs.get(\"tool_calls\"),\n                    )\n                raise GuardrailRaisedException(\n                    guardrail_name=self.guardrail_name,\n                    message=\"Vigil Guard returned an unrecognized decision.\",\n                    should_wrap_with_default_message=False,\n                )\n\n            if decision == \"BLOCKED\":\n                raise GuardrailRaisedException(\n                    guardrail_name=self.guardrail_name,\n                    message=self._build_block_reason(analysis),\n                    should_wrap_with_default_message=False,\n                )\n\n            if decision == \"SANITIZED\":\n                result_texts.append(self._resolve_sanitized_text(text, analysis))\n            else:\n                result_texts.append(text)\n\n        result_tool_calls = inputs.get(\"tool_calls\")","sourceCodeStart":162,"sourceCodeEnd":198,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/proxy/guardrails/guardrail_hooks/vigil_guard/vigil_guard.py#L162-L198","documentation":"Error \"Vigil Guard returned an unrecognized decision.\" thrown in BerriAI/litellm.","triggerScenarios":"Thrown at litellm/proxy/guardrails/guardrail_hooks/vigil_guard/vigil_guard.py:180 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the Vigil Guard backend response; it returned a decision outside the expected set.","Verify the proxy and Vigil Guard backend versions are compatible."],"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-14T05:17:10.506Z"}