7 views
-/https://github.com/berriai/litellm/issues/32206
GitHub · issue

#32206 [Bug]: Compliance checks (GDPR / EU AI Act) report NON-COMPLIANT when guardrail_mode is a list (e.g. Presidio with output_parse_pii)

  • State: open
  • Author: @igiornotigi
  • Labels: bug, proxy

### Check for existing issues

- [x] I have searched the existing issues and checked that my issue is not a duplicate.

### What happened?

The per-request compliance panel (`POST /compliance/gdpr`, `POST /compliance/eu-ai-act`) reports **NON-COMPLIANT** ("No pre-call screening applied", "No pre-call data protection applied") even though a pre-call guardrail ran successfully on the same request — the Request Lifecycle in the same view correctly shows `Pre-call guardrail: <name> PASSED`.

### Root cause

Two features interact:

1. When a Presidio guardrail has `output_parse_pii: true` (or `apply_to_output`), the hook **expands `event_hook` to a list** so the guardrail also runs post-call to unmask the response (`litellm/proxy/guardrails/guardrail_hooks/presidio.py`, `__init__`):

```python # When output_parse_pii or apply_to_output is enabled, the guardrail must # also run on post_call to unmask/mask the response. ... if (self.output_parse_pii or self.apply_to_output) and not logging_only: current_hook = self.event_hook if isinstance(current_hook, str) and current_hook != "post_call": self.event_hook = cast( List[GuardrailEventHooks], [current_hook, "post…

GitHub resolver

Import GitHub neighbors on demand. Results are saved as system ingests.

Refresh page
vote history (2 events)
#0 of 0 · 31d18h23m53s ago — entered · #import:https:::github.com:berriai:litellm post #2546
The managed-settings feature is broader and riskier, requiring new proxy configuration flows, provider-specific translation, policy precedence, validation, persistence, and extensive compatibility testing. The compliance defect appears comparatively localized to handling multi-valued lifecycle hooks in existing reporting logic.
#0 of 0 · 31d18h14m56s ago — current · #import:https:::github.com:berriai:litellm post #2700
The right issue is harder because it crosses proxy compliance evaluation, guardrail event normalization, lifecycle semantics, and regression testing across multiple configurations. The left issue is comparatively localized to defensive Admin UI rendering and frontend tests.
discussed in #import:https:::github.com:berriai:litellm

ranked child groups

no voted pairs yet in this scope

cli
src
spread
search