Skip to content

Re-embedding and model deprecation

What forces a full re-index, what a deprecation notice actually commits a vendor to, and how to plan around both.

Two things force a model change on you whether or not you wanted one. A better embedding model appears and the retrieval quality you could have is now visibly above the retrieval quality you have; or a generation model you already depend on gets a retirement date and the clock starts. Neither is a swap. The first is a consistency problem, because a corpus half converted to a new embedding model is not partly upgraded — it is broken, silently, for every query, until the last chunk lands. The second is a scheduling problem, because the date was published months in advance and the only way to be surprised by it is for nobody to own it.

These pages treat both as engineering work with a defined end state rather than as maintenance. They cover what invalidates a vector and what does not, how to derive the cost and the duration of a backfill from your own corpus and rate limits instead of guessing, how to keep a rollback available while the new index fills, what a deprecation notice commits a provider to and what it conspicuously omits, and how to run two providers side by side without letting the dual run become the permanent architecture.

Why You Have to Re-Embed When You Change Embedding Models

Two embedding models put the same text in different places, so a corpus half converted to a new model returns confident nonsense with no error anywhere.

9 min read

What Happens to Your Index When Embedding Dimensions Do Not Match

The insert error that stops a model swap on its first row, the two fixes that actually work, and why zero-padding silences it without solving anything.

9 min read

Estimating the Cost of Re-Embedding Everything Downstream

An arithmetic you can run against your own corpus, covering the derived artefacts a re-embed invalidates and the rate limit that decides how long it takes.

10 min read

A Rollback Plan for a Failed Re-Embedding Migration

Keep the old index live and dual-write to it during the backfill, so reverting a bad new embedding model is a config change rather than a second migration.

10 min read

Model Deprecation Notices: What They Actually Tell You

What a deprecation announcement commits a provider to, what the lifecycle words mean, and the five things the notice leaves for you to work out.

9 min read

A Version-Pinning Strategy for Production LLM Calls

Pin a dated snapshot in production and put the floating alias in staging, where you want to be broken early.

9 min read

Building a Model Deprecation Calendar for Your Stack

Join the model strings you actually call to the retirement dates your providers publish, in a checked-in file that fails CI when it goes stale.

10 min read

Dual-Running Two Providers During a Cutover

Shadow the new provider first to catch structural failures, then split live traffic by a stable key, with the tool-execution trap handled before either.

10 min read

Comparing Outputs From Two Providers During a Migration

A three-layer harness: deterministic structural checks, embedding similarity used only for ranking, and a judge model spent only on what the first two flagged.

10 min read

When to Stop Dual-Running and Cut Over Fully

Replace a duration with an exit condition, derived from the sample size your own error rates require rather than from how long feels prudent.

10 min read

Other topics