---
url: https://docs.nemo12.com/ops/rollback.md
description: >-
  Runbook rollback một worker về version Cloudflare ngay trước qua GitHub
  Actions: khi nào dùng, ba việc không làm được, kiểm tra sau rollback.
---

# Rollback một worker

Khi nào: một bản deploy vừa lên làm một mặt tiền hỏng (trang trắng, 5xx, API trả sai) và sửa tới
không kịp trong vài phút. Rollback quay worker về **version Cloudflare ngay trước**, không đụng D1.

## Làm thế nào (chỉ qua GitHub Actions)

```bash
gh workflow run rollback.yml --ref main -f worker=nemo12-dolphin -f reason="dolphin trang trang sau b4fe614"
# quay về một version cụ thể (xem `wrangler versions list` trong log run trước):
gh workflow run rollback.yml --ref main -f worker=nemo12-api -f version_id=<uuid> -f reason="..."
```

Tên worker là trường `name` trong `wrangler.jsonc` (15 worker: api · foundry · tool-plane · web ·
learn · marlins · **dolphin** (không phải mentors) · admin · coral · docs · pearl · playbooks · compass
· b21 · ielts). Workflow xếp hàng trong group `production` cùng ci/deploy/seed nên không chạy chồng
lên một lượt deploy đang dở.

Workflow tự kiểm: trạng thái trước, 10 version gần nhất, rollback, trạng thái sau, rồi curl bề mặt
công khai (2xx/30x/401/403 là "sống"; foundry không có URL công khai nên bỏ qua bước curl).

## Ba việc rollback KHÔNG làm

1. **`main` vẫn là bản lỗi.** Push kế tiếp deploy lại nó. Revert commit (`git revert <sha>`) hoặc sửa
   tới ngay, đừng để qua đêm.
2. **Migration D1 đã áp thì không quay ngược.** Bản cũ phải đọc được schema mới — luật AS-04.1.3
   (thêm cột có DEFAULT, không đổi tên/xoá cột) tồn tại đúng vì lý do này. Nếu bản cũ gãy vì schema mới,
   đường ra là sửa tới, không phải rollback.
3. **Không rollback được assets đã đổi hash?** Có: version Cloudflare gồm cả assets của lần deploy đó.

## Sau rollback

* Ghi sự cố vào [intake](../intake.md) (SRC mới, ngày tuyệt đối, triệu chứng, version id, cách sửa tới).
* Nếu nguyên nhân là một cổng chất lượng bỏ sót, thêm cổng — xem [Audit #013](../quality/audits/2026-09-03.md) §3.5.

## Trạng thái diễn tập

Workflow này **chưa từng chạy thật** (0 run tính tới 2026-09-04; Audit #013 I-3 sửa tên worker và
thêm 6 worker thiếu). Việc tay còn chờ: diễn tập một lần trên `nemo12-compass` (ít rủi ro) và ghi
kết quả vào đây với ngày.
