Roll back a recently promoted model version, retriever version, evaluator version, or Isis generation workflow that is causing regression in quality, safety, latency, cost, or compliance.
Scope#
Applies when a promotion via release-taxonomy.ts (event
release.model.promoted or release.workflow.promoted) needs to revert to the
previous certified version. Targets include:
- Assistant LLM versions per persona.
- Sophia retriever, reranker, and grounding-evaluator versions.
- Metis tutor evaluator and assessment evaluator.
- Lilith policy/refusal versions (their joint baselines with the assistant LLM).
- Isis generation workflows (image/video/audio/3D).
- Veritas claim/source/counterclaim evaluator.
This runbook handles the rollback. The persona-version rollback uses
persona-rollback.md. Provider-route failover uses provider-failover.md.
When to roll back#
A rollback fires when any one of:
- An evaluation benchmark in
evaluation-manifest.tsregresses past its regression-blocking threshold. - An alert from
alerts-manifest.tstied to the promoted version fires (model-health-degraded,model-rollback,citation-flag-rate,persona-policy-violation). - The release-captain post-promotion review identifies a customer-visible issue.
- A T&S escalation identifies a safety regression tied to the version.
- A cost or latency budget overshoot exceeds the per-version SLO.
Rollback is the default mitigation. Stay rolled back unless a forward fix clears the original blocker.
Severity classification#
| Sev | Condition |
|---|---|
| sev1 | Safety regression — unsafe-pass rate above threshold, refusal-bypass detected, persona-policy violation in production. |
| sev1 | Cost regression with 10× run-away or budget exhaustion in <1 h. |
| sev2 | Quality regression past the evaluation threshold; customer-visible degraded answers. |
| sev3 | Latency or marginal cost regression; no customer-visible defect. |
Detection signals#
- Alerts:
model-health-degraded,model-rollback,citation-flag-rate,persona-policy-violation,generation-pipeline-failover,grounding-low-confidence-spike. - Dashboards:
dashboards-assistant.tsquality + compliance;dashboards-service-health.tsper-target panels;dashboards-customer-kpi.tsconversion and satisfaction panels. - Audit signals:
admin.model.promoted,admin.model.evaluation_failed,admin.workflow.promotedperadmin-taxonomy.ts.
Rollback procedure#
- Confirm the regression:
- Pull the current evaluation-manifest run for the affected target.
- Compare against the pre-promotion baseline run.
- Confirm the regressed metric is past the regression-blocking threshold from
evaluation-manifest.ts. - Save the comparison artifact to the audit store under the incident ID — the postmortem will reference it.
- Identify the previous certified version: read the
release-taxonomy.tsrelease history for the target — the priorrelease.model.certifiedrecord is the rollback destination. If no prior certified record exists (first release of the target), rollback is not possible — fall back to the kill-switch path (mitigation step 4). - Invalidate the promoted cache: any cached answers, embeddings, reranks,
or generation outputs tagged with the regressed version must be invalidated
before the rollback closes — otherwise customers continue to see the bad
version's output. The cache-invalidation hook emits
release.cache.invalidatedwith the version tag. - Pin the previous version: call the release-taxonomy rollback hook; the
hook emits
release.model.rolled_back(or.workflow.rolled_back) with the source and destination version, the operator, and the reason code. Customer surfaces and assistant routes pick up the rollback on their next request. - Cohort verification: sample 20 in-flight customer sessions or jobs that hit the rolled-back target. Verify the response carries the prior version's metadata (model id, retriever id, workflow id).
- Re-run the gating evaluation post-rollback to confirm the metric recovered to baseline; the run is added to the audit store.
Kill-switch path (when no prior version exists)#
If the target is a first-time release with no prior certified version:
- Disable the target entirely via the target's kill-switch flag in release-taxonomy.
- Customer surfaces fall back to the documented degraded mode (assistant grounded-mode disabled, Isis generation queue paused, etc.).
- The on-call team for the target follows the matching domain runbook to manage the customer-visible degraded mode.
Communication cadence#
| Phase | Template ID | Audience | Cadence |
|---|---|---|---|
| Internal | incident.internal.slack.investigating |
internal | at decision |
| Identified | incident.customer.status_page.identified |
status_page | for customer-visible regressions |
| Mitigating | incident.customer.status_page.mitigating |
status_page | every 30 min |
| Resolved | incident.customer.status_page.resolved + .email.resolved |
both | within 60 min |
| Postmortem | incident.customer.status_page.postmortem |
status_page | within 5 biz day |
For safety-related rollbacks (refusal bypass, unsafe-pass), the customer notification must specifically state the safety scope and the recertified version. T&S co-authors the copy.
Escalation#
Standard 5/5/15/30/60 escalation. For sev1 safety rollbacks, page T&S lead and the model-ops lead at minute 0.
Recovery verification#
- Evaluation gating metrics within thresholds for the rolled-back version.
- All caches invalidated for the regressed version (no stale serves for 60 min as confirmed by trace-attribute sampling).
- Customer-KPI panels (
dashboards-customer-kpi.ts) recovered to baseline for 30 min. - No new alerts of the same class for 30 min.
- Audit pipeline records the rollback and the recertified version.
Post-incident#
- Postmortem must include: the regression metric and its threshold, the promotion record that introduced it, the rollback record, customer-impact estimate, cost/latency overshoot if any, and the remediation owner for the forward fix.
- File a promotion-process improvement ticket if the regression slipped past the evaluation pipeline — either the threshold was too loose or the benchmark missed the regressed dimension.
- If the regression was safety-class, add the new failure to the safety benchmark fixture so the next promotion catches it.
- The forward fix follows the standard model-promotion gate; do not shortcut promotion to "re-fix" a previously regressed version.