diff --git a/src/slurmctld/controller.c b/src/slurmctld/controller.c
index 49813917eab67757cf4c2d9eae324d94491f7bf9..b3b1f1f520c2fc3dd2869cd552dd4217b3299300 100644
--- a/src/slurmctld/controller.c
+++ b/src/slurmctld/controller.c
@@ -1507,6 +1507,7 @@ static void _slurm_rpc_allocate_and_run(slurm_msg_t * msg)
 	error_code = step_create(&req_step_msg, &step_rec, true);
 	/* note: no need to free step_rec, pointer to global job step record */
 	if (error_code) {
+		job_complete(job_id, job_desc_msg->user_id, false, 0);
 		unlock_slurmctld(job_write_lock);
 		info(
 		   "_slurm_rpc_allocate_and_run error %d creating job step, time=%ld",