diff --git a/tests/custom-html-bkp-bad/recipe_meta.py b/tests/custom-html-bkp-bad/recipe_meta.py
new file mode 100644
index 0000000..cff4007
--- /dev/null
+++ b/tests/custom-html-bkp-bad/recipe_meta.py
@@ -0,0 +1,5 @@
+# custom-html-bkp-bad — regression fixture for bad-backup canary.
+# This recipe is custom-html WITHOUT backupbot labels. Setting BACKUP_CAPABLE=True here forces the
+# harness to run the backup tier; the recipe itself has no backupbot service, so
+# `abra app backup create` produces no snapshot → test_backup_artifact fails → backup tier RED.
+BACKUP_CAPABLE = True
diff --git a/tests/regression/test_canaries.py b/tests/regression/test_canaries.py
index c69f539..b146e54 100644
--- a/tests/regression/test_canaries.py
+++ b/tests/regression/test_canaries.py
@@ -124,11 +124,13 @@ _BAD_UPGRADE = {
_BAD_BACKUP = {
"id": "bad-backup",
- "recipe": "custom-html",
- "src": "recipe-maintainers/custom-html",
- # Pin: regression-bad-backup @ 2026-06-02 — backupbot.backup.path=/nonexistent-path-cc-ci-canary-bad
- # `abra app backup create` fails → backup tier RED. install+upgrade still PASS.
- "ref": "cd52b3a02d2cc1a73ec598766cc1bf1c62b465ec",
+ "recipe": "custom-html-bkp-bad",
+ "src": "recipe-maintainers/custom-html-bkp-bad",
+ # Pin: custom-html-bkp-bad main @ 2026-06-02 — custom-html WITHOUT backupbot labels.
+ # cc-ci recipe_meta sets BACKUP_CAPABLE=True → harness runs backup tier.
+ # No backupbot.backup=true label → backup-bot-two finds no containers → no snapshot.
+ # parse_snapshot_id returns None → test_backup_artifact fails → backup tier RED.
+ "ref": "4e584063a99aa9f4d05fe1b54a7e4d54356b524f",
"expected_green": False,
"stages": "install,upgrade,backup",
"failing_tier": "backup",