diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c
index 4c11e656aacc5ec5869b39a65a266eed6895de28..6a629e0836241b3fec8b73312ac981d62eb85176 100644
--- a/src/slurmctld/job_mgr.c
+++ b/src/slurmctld/job_mgr.c
@@ -5381,12 +5381,15 @@ static int _valid_job_part(job_desc_msg_t * job_desc,
 							qos_ptr, assoc_ptr ?
 							assoc_ptr->acct : NULL);
 
-			if (rc != SLURM_SUCCESS) {
+			if ((rc != SLURM_SUCCESS) &&
+			    ((rc == ESLURM_ACCESS_DENIED) ||
+			     (rc == ESLURM_USER_ID_MISSING) ||
+			     (rc == ESLURM_JOB_MISSING_REQUIRED_PARTITION_GROUP) ||
+			     (slurmctld_conf.enforce_part_limits ==
+			      PARTITION_ENFORCE_ALL))) {
+				break;
+			} else if (rc != SLURM_SUCCESS) {
 				fail_rc = rc;
-				if (slurmctld_conf.enforce_part_limits ==
-				    PARTITION_ENFORCE_ALL) {
-					break;
-				}
 			} else {
 				any_check = true;
 			}
@@ -5427,10 +5430,12 @@ static int _valid_job_part(job_desc_msg_t * job_desc,
 		rc = _part_access_check(part_ptr, job_desc, req_bitmap,
 					submit_uid, qos_ptr,
 					assoc_ptr ? assoc_ptr->acct : NULL);
-
-		if (rc != SLURM_SUCCESS && slurmctld_conf.enforce_part_limits)
+		if ((rc != SLURM_SUCCESS) &&
+		    ((rc == ESLURM_ACCESS_DENIED) ||
+		     (rc == ESLURM_USER_ID_MISSING) ||
+		     (rc == ESLURM_JOB_MISSING_REQUIRED_PARTITION_GROUP) ||
+		     slurmctld_conf.enforce_part_limits))
 			goto fini;
-
 		// Enforce Part Limit = no
 		rc = SLURM_SUCCESS;
 	}