Skip to main content

Handle stale production subject

A PRODUCTION_PROMOTION ticket is bound to subject_sha. If the runtime HEAD moves between signing and consumption, the ticket is stale.

Symptoms

  • The orchestrator reports ticket stale: subject_sha mismatch.
  • signed_ticket_verifier.verify succeeds but consumption fails.

Steps

  1. Confirm the head moved: git rev-parse origin/main vs the ticket's subject_sha.
  2. Re-base the work onto the new head.
  3. Push the new head.
  4. Re-run the merge to bind the new head to the goal.
  5. Re-emit the production ticket at the new head.
  6. Sign the new ticket offline.
  7. Submit the new ticket to the orchestrator.

Why not consume the old ticket?

The orchestrator's subject-binding rule refuses to consume a ticket whose subject_sha does not match the current HEAD. This is a hard fail-closed.