diff --git a/src/slurmctld/node_scheduler.c b/src/slurmctld/node_scheduler.c
index ec5ca2e84da4a493ae761dd7f3491c50a006fe89..650f37d937d4f57b75c92a395d5307165811270d 100644
--- a/src/slurmctld/node_scheduler.c
+++ b/src/slurmctld/node_scheduler.c
@@ -887,11 +887,16 @@ extern int select_nodes(struct job_record *job_ptr, bool test_only)
 		shared = 0;
 	else
 		shared = job_ptr->details->shared;
-	
-	error_code = _pick_best_nodes(node_set_ptr, node_set_size,
+
+	if (max_node < min_nodes)
+		error_code = ESLURM_REQUESTED_PART_CONFIG_UNAVAILABLE;
+	else {
+		error_code = _pick_best_nodes(node_set_ptr, node_set_size,
 				      &select_bitmap, job_ptr,
 				      min_nodes, max_nodes, req_nodes,
 				      shared);
+	}
+
 	if (error_code) {
 		if (detail_ptr)
 			detail_ptr->wait_reason = WAIT_RESOURCES;