AI NewsInfrastructureAnnouncement

LiteLLM v1.104.0 refuses to start when the proxy master key is unset, empty, or the one from its own docs

LiteLLM v1.104.0 adds a breaking change that refuses to start the proxy when its master key is unset, empty, or set to a publicly known value such as sk-1234, the value its own earlier docs recommended.

AI News

Editorial2 min read

LinkedInX
GitHub social card for the BerriAI LiteLLM repository

Image: GitHub

Why it mattersA team that copy-pasted the sample config into production will see the proxy refuse to boot on upgrade, which forces the key rotation that should have happened the day it went live.

A model gateway that accepts sk-1234 as its master key is a model gateway that will accept it from anyone on the internet.

BerriAI released LiteLLM v1.104.0 on 3 October 2026, and the headline change is a breaking one: the proxy now refuses to start with an unset, empty, or publicly known master key. The release notes carry the change as feat(proxy)!: refuse to start with an unset, empty, or publicly known master key. The trailing ! is LiteLLM's convention for a backwards-incompatible change. The same release stops shipping sk-1234 as the sample master key in configs and examples, so a new install cannot pick up the known-bad value by copy and paste.

Why that value matters

The master key gates the LiteLLM proxy's admin endpoints and its virtual-key management. For years the project's own docs used sk-1234 as the illustration value, and operators who copied the sample config into production kept it. A publicly documented default is a credential search engines index, and anyone can scan for a proxy still running on it. The upgrade turns that known hole into a boot failure, which is the version of a reminder nobody can ignore.

Account hardening in the same release

Three auth changes landed with it:

  • Breached-password detection added to the password policy.
  • A forced password reset for a breached or admin-set password on next login.
  • A self-service password change path, and fixes to several places where plaintext passwords could leak.

A LiteLLM operator whose password shows up in a known-breach set will be prompted to change it on next login, whether that password was weak when it was chosen or safe at the time and now exposed by somebody else's dump.

What else moved

The changelog carries a long list of test-tree migrations into tests/unit, a Rust token-counter refactor split into separate backends, and dozens of OpenRouter price syncs. The provider list added fal.ai's Seedance 2.5 and 2.0 video generation. Router changes stop cooldowns from firing on background response-cost polls that return 404, and let a retry policy pin 404 retries explicitly through a new NotFoundErrorRetries setting. The guardrails scanner now reads each choice's tool-call arguments on n>1 streams and logs why a rewrite was discarded.

What a team upgrading today has to do

Before this release, a LiteLLM proxy running with master_key: sk-1234 would start and work. On v1.104.0 it will not. The fix is to set a real master key through environment or config and restart. For the auth changes, the reset is forced on the user's next login, so a known-breached account can keep working until that moment. A team that runs the proxy behind its own authentication layer still inherits the key check, because the gate is in the proxy itself and runs before any surrounding infrastructure sees the request.

Source

This item was written by an AI system from the linked source. Reveneau is responsible for what it publishes.

Share
LinkedInX