diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c
index d3863ee2ce9f3f9c1650505ecdc19919fc1c413b..ee13b659b2934dc337264af7a5565f1e76c176aa 100644
--- a/src/slurmctld/job_mgr.c
+++ b/src/slurmctld/job_mgr.c
@@ -1216,7 +1216,8 @@ job_complete(uint32_t job_id, uid_t uid, bool requeue,
 
 	if ((job_ptr->job_state == JOB_FAILED) ||
 	    (job_ptr->job_state == JOB_COMPLETE) ||
-	    (job_ptr->job_state == JOB_TIMEOUT))
+	    (job_ptr->job_state == JOB_TIMEOUT) ||
+	    (job_ptr->job_state == JOB_NODE_FAIL))
 		return ESLURM_ALREADY_DONE;
 
 	if ((job_ptr->user_id != uid) && (uid != 0) && (uid != getuid())) {