Re-run full deploy job on failure

I have a deploy job which has about 15 command steps to deploy the application. At last step, I hit a health check endpoint which will exit 1 on a non-200 response. When it exists 1 I have a when: on_fail command which rolls back the repo to main. At this point I need to re-deploy the application, which requires re-running the entire deploy job with all 15 commands. Since when is not a valid parameter of a job, only a command within a job - is this possible in circleCI? The job should never be re-run unless it fails and the rollback command has been run.