diff --git a/src/scontrol/info_job.c b/src/scontrol/info_job.c
index 52fe21ac740512176c1bb4086130aaad14b6561a..823f7012f714ecd0276efa06ba1e5793326f7b06 100644
--- a/src/scontrol/info_job.c
+++ b/src/scontrol/info_job.c
@@ -248,9 +248,9 @@ scontrol_get_job_state(uint32_t job_id)
 	error_code = _scontrol_load_jobs(&job_buffer_ptr, job_id);
 	if (error_code) {
 		exit_code = 1;
-		if (quiet_flag != 1)
+		if (quiet_flag == -1)
 			slurm_perror ("slurm_load_jobs error");
-		return 0;
+		return (uint16_t) NO_VAL;
 	}
 	if (quiet_flag == -1) {
 		char time_str[32];
@@ -265,7 +265,9 @@ scontrol_get_job_state(uint32_t job_id)
 		if (job_ptr->job_id == job_id)
 			return job_ptr->job_state;
 	}
-	return 0;
+	if (quiet_flag == -1)
+		printf("Could not find job %u", job_id);
+	return (uint16_t) NO_VAL;
 }
 
 /*
diff --git a/src/scontrol/update_job.c b/src/scontrol/update_job.c
index 73ffd5825677217744d32659f359a09fc225f450..8c76f99c4765133deef57e14cd0c9bd5c37bd604 100644
--- a/src/scontrol/update_job.c
+++ b/src/scontrol/update_job.c
@@ -227,6 +227,8 @@ scontrol_hold(char *op, char *job_id_str)
 		job_msg.priority = 0;
 	else {
 		uint16_t job_state = scontrol_get_job_state(job_msg.job_id);
+		if (job_state == (uint16_t) NO_VAL)
+			return SLURM_ERROR;
 		if ((job_state & JOB_STATE_BASE) != JOB_PENDING) {
 			slurm_seterrno(ESLURM_JOB_NOT_PENDING);
 			return ESLURM_JOB_NOT_PENDING;