v1.103.3

BerriAI/litellmv1.103.3Oct 3, 2026by litellm-dispatcher[bot]

Upgrading?

AI Summary

A maintenance release focusing on stability and migration handling for the stable 1.103.x branch, enforcing migration checks and updating core dependencies.

Key Highlights

  • Enforced migration checks by default.
  • Updated dependencies including pyjwt, pypdf, tornado, and urllib3.
  • Backport of Together structured-output and text-completion fixes.
  • Stopped building SpendLogs indexes in migrations.

New Features

  • Migration enforcement improvements.
  • Dependency security and version updates.

Full Release Notes

## Verify Docker Image Signature

All LiteLLM Docker images are signed with [cosign](https://docs.sigstore.dev/cosign/overview/). Every release is signed with the same key introduced in [commit `0112e53`](https://github.com/BerriAI/litellm/commit/0112e53046018d726492c814b3644b7d376029d0).

**Verify using the pinned commit hash (recommended):**

A commit hash is cryptographically immutable, so this is the strongest way to ensure you are using the original signing key:

```bash
cosign verify \
  --key https://raw.githubusercontent.com/BerriAI/litellm/0112e53046018d726492c814b3644b7d376029d0/cosign.pub \
  ghcr.io/berriai/litellm:v1.103.3
```

**Verify using the release tag (convenience):**

Tags are protected in this repository and resolve to the same key. This option is easier to read but relies on tag protection rules:

```bash
cosign verify \
  --key https://raw.githubusercontent.com/BerriAI/litellm/v1.103.3/cosign.pub \
  ghcr.io/berriai/litellm:v1.103.3
```

Expected output:

```
The following checks were performed on each of these signatures:
  - The cosign claims were validated
  - The signatures were verified against the specified public key
```

---
## What's Changed
* fix(proxy): enforce the migration check by default and stop building SpendLogs indexes in migrations (stable/1.103.x) by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/44205
* chore(release): bump litellm-proxy-extras 0.4.100 -> 0.4.100.post1 for stable/1.103.x by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/44225
* fix(proxy-extras): stop the migration sanity check from building the hand-built SpendLogs indexes and cut 1.103.3 by @yuneng-berri in https://github.com/BerriAI/litellm/pull/44286
* chore(release): backport #42643 to stable/1.103.x by @yuneng-berri in https://github.com/BerriAI/litellm/pull/44309
* chore(deps): bump pyjwt, pypdf, tornado, urllib3 and gitpython for stable/1.103.x by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/44352
* chore(release): backport #44341, #44346 to stable/1.103.x by @yuneng-berri in https://github.com/BerriAI/litellm/pull/44404
* test(e2e): backport Together structured-output and text-completion fixes to stable/1.103.x by @devin-ai-integration[bot] in https://github.com/BerriAI/litellm/pull/44437


**Full Changelog**: https://github.com/BerriAI/litellm/compare/v1.103.2...v1.103.3

Related Repositories