I upgraded an LLM SDK and expected a routine version bump.

Instead I had to touch 15+ files, fix breaking changes across four providers, and spend the rest of the day hoping I had not missed one. That was the second time it happened. I knew there would be a third.

If you have ever shipped a production LLM system, you probably recognize the smell:

An SDK minor version renames maxTokens to maxOutputTokens and now 15 files break at runtime, not compile time.

Switching one classification task from Claude to a cheaper model means editing import paths and type signatures in business logic.