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
- Check the Zscaler AI Guard API response; the action field must be ALLOW, BLOCK, or DETECT.
- 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.