Model Rollback Runbook
Use this runbook when a newly promoted model degrades serving reliability or quality.
When To Use
- Canary guardrail breach sustained for 10 minutes.
- Elevated ranker fallback or ranker decision failure alerts.
- Significant quality regression from business or experimentation dashboards.
Signals
RecSysCanaryLatencyAutoRollbackRecSysCanaryFallbackAutoRollbackRecSysCanaryFeatureAvailabilityAutoRollbackRecSysRankerDecisionFailureRateHigh
Immediate Actions (First 10 Minutes)
- Freeze rollout progression immediately.
- Route traffic back to last known good percentage (or 0% canary).
- Capture snapshots for:
hh_lion_homepage_decision_events_totalhh_lion_ranker_decision_events_totalhh_lion_request_latency_seconds
- Record incident start time and suspect model run/version.
Rollback Procedure
Preferred path: use the dedicated GitHub Actions rollback workflow.
Official rollback workflow
Workflow:
.github/workflows/rollback-production-model.yml
Inputs:
rollback_model_versionmodel_name(defaults tohomepage_two_tower)
The workflow will:
- resolve the exact registered rollback target version
- verify ANN lineage matches that rollback target
- move the
productionalias back to the requested version - re-verify ANN lineage on
@production - verify MLflow alias, ANN lineage, and the live API
/v2/model/infoall resolve the expected rollback run/version
Manual fallback (emergency-only)
If GitHub Actions is unavailable, you can perform the same rollback logic manually against in-cluster MLflow:
uv run python -m scripts.rollback_model \
--model-name homepage_two_tower \
--rollback-model-version <PREVIOUS_GOOD_VERSION> \
--execute
Then verify:
uv run python scripts/check_ann_lineage.py \
--model-name homepage_two_tower \
--alias production
and confirm the live API resolves the rollback target via /v2/model/info.
When using the official workflow, prefer its final summary as the release-proof artifact because it now checks registry alias, ANN lineage, and live serving together.
Validation Checklist
/health/readyis healthy.- Fallback ratio returns to baseline.
- p95 latency returns below canary threshold.
- No sustained
primary_failed|fallback_failedspikes.
Escalation
- If rollback fails, force traffic to stable legacy deployment target and page platform on-call.
- Open a post-incident review with model owner, backend owner, and on-call responder.