Skip to main content

Handle gate replay rejection

A consumed gate cannot be replayed. If the orchestrator detects a replay attempt, it raises a GateReplayError.

Symptoms

  • gate replay rejected: ticket_id already consumed.
  • dispatches_used == max_dispatches.

Steps

  1. Confirm the gate is consumed: goal-gate.ps1 -Action inspect -GateId ….
  2. Determine why the replay was attempted:
    • The orchestrator was re-run with a stale next_actions record.
    • A manual retry was attempted.
  3. Reset the orchestrator's next-action record by re-running goal-run.ps1 -DryRun.
  4. Re-issue a fresh gate if needed.
  5. Continue.

Why replay protection exists

Replay protection prevents an attacker who has captured a ticket from re-using it. Once consumed, the ticket is dead.