#33944 [Bug]: per-request metadata.guardrails override silently disables every guardrail not explicitly named, including default_on ones
### What happened?
`litellm.proxy.guardrails.guardrail_helpers.should_proceed_based_on_metadata()` is used by the live Lakera AI (prompt-injection) and Aporia AI guardrail hooks to decide, per request, whether they should run. If a caller's request includes `metadata.guardrails` as a dict that does **not** name that particular guardrail at all — either because it only names a *different* guardrail, or because it's an empty dict — the function returns `False` and the guardrail is silently skipped for that request, even though the proxy has it configured with `default_on=True` and the caller never attempted to disable it.
In other words: naming any other guardrail (or none at all) in a per-request override silently switches every guardrail *not* named into "skip" mode for that one request, instead of only affecting the guardrail(s) actually named.
### Where
`litellm/proxy/guardrails/guardrail_helpers.py`, `should_proceed_based_on_metadata()` (lines 26-67):
```python async def should_proceed_based_on_metadata(data: dict, guardrail_name: str) -> bool: if "metadata" in data and isinstance(data["metadata"], dict): if "guardrails" in data["metadata"]: request_…