#25487 [Bug]: disable_global_guardrails per key/team has no effect (singular/plural key mismatch)
### What happened?
Setting `disable_global_guardrails: true` on an API key or team metadata has no effect — `default_on: true` guardrails still run unconditionally.
`get_disable_global_guardrail()` in `custom_guardrail.py` checks for the key `disable_global_guardrail` (singular), but every producer — `litellm_pre_call_utils.py` (key and team metadata propagation), the management API endpoints, and the UI — writes `disable_global_guardrails` (plural). The keys never match, so the method always returns `False`.
The mismatch was introduced in PR #16983 (2025-11-22) across two commits 10 minutes apart. The plural form is used consistently everywhere else; the singular form only exists in `get_disable_global_guardrail()` and its unit test.
### Steps to Reproduce
1. Create a key with global guardrails disabled: ```bash curl -X POST 'http://0.0.0.0:4000/key/generate' \ -H 'Authorization: Bearer sk-master' \ -H 'Content-Type: application/json' \ -d '{"metadata": {"disable_global_guardrails": true}}' ``` 2. Make a request with that key to a route with a `default_on: true` guardrail 3. Observe the guardrail still runs — the `disable_global_guardrails` flag is silently ignored
###…