diff --git a/src/slurmctld/node_scheduler.c b/src/slurmctld/node_scheduler.c
index bd5930eb7a2d014fdf56d95c87dd5b5c4a92247b..6048e7a92e13456b54aec57fdb717824feadaaef 100644
--- a/src/slurmctld/node_scheduler.c
+++ b/src/slurmctld/node_scheduler.c
@@ -1794,6 +1794,9 @@ extern int select_nodes(struct job_record *job_ptr, bool test_only,
 		} else if ((job_ptr->state_reason == WAIT_BLOCK_MAX_ERR) ||
 			   (job_ptr->state_reason == WAIT_BLOCK_D_ACTION)) {
 			/* state_reason was already setup */
+		} else if ((job_ptr->state_reason == WAIT_HELD) &&
+			   (job_ptr->priority == 0)) {
+			/* Held by select plugin due to some failure */
 		} else {
 			job_ptr->state_reason = WAIT_RESOURCES;
 			xfree(job_ptr->state_desc);