BerriAI/litellm · error · HTTPException

Action field in response is {guardrail_result}, expecting 'A

Error message

Action field in response is {guardrail_result}, expecting 'ALLOW', 'BLOCK' or 'DETECT'

What it means

Error "Action field in response is {guardrail_result}, expecting 'ALLOW', 'BLOCK' or 'DETECT'" thrown in BerriAI/litellm.

Source

Thrown at litellm/proxy/guardrails/guardrail_hooks/zscaler_ai_guard/zscaler_ai_guard.py:347

                        "zscaler_ai_guard_response": json_response,
                    }
                elif guardrail_result == "ALLOW" or guardrail_result == "DETECT":
                    verbose_proxy_logger.debug(
                        "%s is allowed by Zscaler AI Guard. guardrail_result: %s", direction, guardrail_result
                    )
                    return {
                        "action": "ALLOW",
                        "zscaler_ai_guard_response": json_response,
                        "direction": direction,
                    }
                else:
                    verbose_proxy_logger.error(
                        "Action field in response is %s, expecting 'ALLOW', 'BLOCK' or 'DETECT'", guardrail_result
                    )
                    user_facing_error = self._create_user_facing_error(
                        f"Action field in response is {guardrail_result}, expecting 'ALLOW', 'BLOCK' or 'DETECT'"
                    )
                    raise HTTPException(status_code=500, detail=user_facing_error)
            else:
                errorMsg: Final = json_response.get("errorMsg", None)
                verbose_proxy_logger.error("statusCode in response: %s, errorMsg: %s", statusCode_in_response, errorMsg)
                user_facing_error = self._create_user_facing_error(
                    f"statusCode in response: {statusCode_in_response}, errorMsg: {errorMsg}"
                )
                raise HTTPException(status_code=500, detail=user_facing_error)
        else:
            verbose_proxy_logger.error("Zscaler AI Guard status_code - %s", response.status_code)
            user_facing_error = self._create_user_facing_error(f"Response status code: {response.status_code}")
            raise HTTPException(status_code=response.status_code, detail=user_facing_error)

    async def make_zscaler_ai_guard_api_call(
        self, zscaler_ai_guard_url, api_key, policy_id, direction, content, **kwargs
    ):
        """
        Makes an API call to the Zscaler AI Guard service and handles retries, errors, and response parsing.
        """

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. Check the Zscaler AI Guard API response; the action field must be ALLOW, BLOCK, or DETECT.
  2. Verify integration with the correct Zscaler API version.

When it happens

Trigger: Thrown at litellm/proxy/guardrails/guardrail_hooks/zscaler_ai_guard/zscaler_ai_guard.py:347 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/cb5d323af09177fe. Report an issue: GitHub.