Any job, regardless of if it completed or failed, can be rerun in the jobs tab of your recipe. However, it will be rerun using the original trigger data, and will not pick up any changes made to the event. For example, if you have a recipe that was triggered when a new invoice was created, and you make changes to the invoice afterwards, rerunning the job will not use the data from the updated invoice, but from the original invoice.
When should I rerun jobs:
Re-running a job will cause the trigger event to be passed through the recipe again, and this feature is useful in the cases below
1. A job that failed the first time, because the recipe was not accurately built.
2. Job may have completed, but did not process the event properly, for example if you had a conditional statement wrong - you did not process it because it was in 'Paid' state, but you had mistakenly set the condition to 'If not Paid, finish'. In this case too you would like to fix the recipe and rerun the job.
3. The job completed fine, but the processing was not complete because of incomplete recipe definition. Many times, during testing, people incrementally build and test a recipe with the same job.
Duplicates may occur when jobs are rerun depending on how your recipe was set, so be sure to check and remove duplicates (if present) before re-running the job. To learn about duplicate prevention logic, check out this article here.