---
title: "v1.88.3 - Guardrail Polling & Hook Fixes"
url: "/release_notes/v1.88.3/v1-88-3"
canonical_url: "https://docs.litellm.ai/release_notes/v1.88.3/v1-88-3"
type: "release-notes"
last_updated: "2026-10-09"
related:
  - "/release_notes/v1.88.4/v1-88-4"
  - "/release_notes/v1.88.2/v1-88-2"
---
# v1.88.3 - Guardrail Polling & Hook Fixes

> Index of all LiteLLM docs: https://docs.litellm.ai/llms.txt

## Deploy this version

**Docker**

```bash
docker run \
-e STORE_MODEL_IN_DB=True \
-p 4000:4000 \
docker.litellm.ai/berriai/litellm:1.88.3
```

**Pip**

```bash
pip install litellm==1.88.3
```

`v1.88.3` is a patch release on top of [`v1.88.2`](/release_notes/v1.88.2/v1-88-2). It fixes two guardrail regressions: database-backed guardrails were being re-initialized on every poll, and model-level guardrails ran their pre-call hook more than once.

### What's Changed

- fix(guardrails): stop re-initializing DB guardrails on every poll - [PR #30542](https://github.com/BerriAI/litellm/pull/30542)
- fix(guardrails): run the `pre_call` hook once for model-level guardrails - [PR #30543](https://github.com/BerriAI/litellm/pull/30543)

## Full Changelog

https://github.com/BerriAI/litellm/compare/v1.88.2...v1.88.3

## Related pages

- [v1.88.4](https://docs.litellm.ai/release_notes/v1.88.4/v1-88-4.md)
- [v1.88.2](https://docs.litellm.ai/release_notes/v1.88.2/v1-88-2.md)
