mol-dog-stale-db's final bd close never succeeds from a pool session: claim identity (session id) vs actor (pool name) mismatch, every run exits 1 #9

Open
opened 2026-09-11 15:29:30 +00:00 by forgejo-admin · 0 comments

The mol-dog-stale-db formula's single step ends with bd close "$WORK_BEAD" --reason "...". From a pool session (bd.dog) this close ALWAYS fails, so every run exits 1 and the wisp stays in_progress until someone closes it by hand.

Measured 2026-09-11 on two consecutive order runs (wisps gs-ql0itd and gs-1ognoz). Both times the step completed all its work, attached the scan report, and then:

cannot close gs-ql0itd: assignee is "gs-vuaano", actor is "bd__dog-1-pool"; reclaim or use --force to override

Cause: gc hook --claim records the claim under the session identity (gs-vuaano), but when the formula step later runs bd close, bd resolves the acting identity to the pool name (bd__dog-1-pool). The identities never match, so a plain close can never succeed from this pool. The error's own remedy, --force, works, and the operator workaround both times was bd close <id> --force.

Workaround used (recorded per the standing rule): manual bd close <bead> --force --reason "Stale DB scan complete (...)" after each run. Drain-ack still succeeds, so the controller is not blocked, but every wisp from this formula is left open by the formula itself.

Fix direction, for the pack author to choose: either close with --force in the formula (it is the same agent that claimed the work one interaction earlier), or have the hook/claim path export an identity bd accepts for the close.

Related but distinct: gascity-packs#8 covers literal {{var}} placeholders in the same formula.

The mol-dog-stale-db formula's single step ends with `bd close "$WORK_BEAD" --reason "..."`. From a pool session (bd.dog) this close ALWAYS fails, so every run exits 1 and the wisp stays in_progress until someone closes it by hand. Measured 2026-09-11 on two consecutive order runs (wisps gs-ql0itd and gs-1ognoz). Both times the step completed all its work, attached the scan report, and then: cannot close gs-ql0itd: assignee is "gs-vuaano", actor is "bd__dog-1-pool"; reclaim or use --force to override Cause: `gc hook --claim` records the claim under the session identity (gs-vuaano), but when the formula step later runs `bd close`, bd resolves the acting identity to the pool name (bd__dog-1-pool). The identities never match, so a plain close can never succeed from this pool. The error's own remedy, --force, works, and the operator workaround both times was `bd close <id> --force`. Workaround used (recorded per the standing rule): manual `bd close <bead> --force --reason "Stale DB scan complete (...)"` after each run. Drain-ack still succeeds, so the controller is not blocked, but every wisp from this formula is left open by the formula itself. Fix direction, for the pack author to choose: either close with `--force` in the formula (it is the same agent that claimed the work one interaction earlier), or have the hook/claim path export an identity bd accepts for the close. Related but distinct: gascity-packs#8 covers literal {{var}} placeholders in the same formula.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
celilo/gascity-packs#9
No description provided.