diff --git a/src/common/slurm_protocol_api.c b/src/common/slurm_protocol_api.c
index 61525e23efe6a0cb1ab9612c93cc3fed2d20bce0..06f4115830f1b4270df150322099ce095e8380b8 100644
--- a/src/common/slurm_protocol_api.c
+++ b/src/common/slurm_protocol_api.c
@@ -301,8 +301,10 @@ int slurm_receive_msg(slurm_fd open_fd, slurm_msg_t * msg)
 	/* unpack header */
 	unpack_len = rc;
 	unpack_header(&header, &buffer, &unpack_len);
-	if ((rc = check_header_version(&header)) < 0) 
+	if ((rc = check_header_version(&header)) != SLURM_SUCCESS) {
+		slurm_seterrno_ret(SLURM_PROTOCOL_VERSION_ERROR);
 		return rc;
+	}
 
 	/* unpack cred */
 	if (header.cred_length <= unpack_len) {
@@ -312,8 +314,10 @@ int slurm_receive_msg(slurm_fd open_fd, slurm_msg_t * msg)
 		slurm_seterrno_ret(ESLURM_PROTOCOL_INCOMPLETE_PACKET);
 
 	/* verify credentials */
-	if ((rc = slurm_auth_verify_credentials(creds)) != SLURM_SUCCESS)
-		slurm_seterrno_ret(rc);
+	if ((rc = slurm_auth_verify_credentials(creds)) != SLURM_SUCCESS) {
+		slurm_seterrno_ret(SLURM_PROTOCOL_AUTHENTICATION_ERROR);
+		return rc;
+	}
 
 	msg->cred_type = header.cred_type;
 	msg->cred_size = header.cred_length;