diff --git a/src/slurmctld/node_scheduler.c b/src/slurmctld/node_scheduler.c
index 6048e7a92e13456b54aec57fdb717824feadaaef..ba5edadaf07695e3ee3ed9bb8544672ead9c12ae 100644
--- a/src/slurmctld/node_scheduler.c
+++ b/src/slurmctld/node_scheduler.c
@@ -1917,7 +1917,8 @@ extern int select_nodes(struct job_record *job_ptr, bool test_only,
 
       cleanup:
 	if (job_ptr->array_recs && job_ptr->array_recs->task_id_bitmap &&
-	    !IS_JOB_STARTED(job_ptr)) {
+	    !IS_JOB_STARTED(job_ptr) &&
+	    (bit_ffs(job_ptr->array_recs->task_id_bitmap) != -1)) {
 		job_ptr->array_task_id = NO_VAL;
 	}
 	if (preemptee_job_list)