pending, execute_at set to now.
The runner picks it up on its next tick, within a few seconds.
200 with the re-armed task.
What is preserved
The id stays the same, so anything already holding it keeps working. The attempt log is kept, not cleared. The delivery that failed is the reason you are replaying, so erasing it would destroy the record at exactly the wrong moment. A replay appends to the log rather than starting a fresh one -n keeps counting up across replays.
finished_at is cleared, and is set again when the replay finishes.
The task’s
retries budget applies afresh to the replay. A task configured with retries: 3 that exhausted them gets three more.Which tasks can be replayed
Refusing
pending and running is not a formality: re-arming a task the runner is already holding would race it and risk a double delivery.
Recurring tasks
Replaying a task with aschedule fires it once now and then re-anchors the chain forward from that fire.
It does not backfill the fires that were missed.