No such file or directory @ dir_s_mkdir - /var/chef/nodes>

I am using latest chef client

I am getting this error, solo.rb node.json looks good

my cookbooks are located /var/chef-solo/

ERROR: #<Errno::ENOENT: No such file or directory @ dir_s_mkdir - /var/chef/nodes>

You probably need to mkdir /var/chef.

I did that but still I am getting below error:

Starting Chef Client, version 14.3.37
resolving cookbooks for run list:
Synchronizing Cookbooks:
Installing Cookbook Gems:
Compiling Cookbooks...
[2018-08-17T21:18:29+00:00] WARN: Node ip-xxx-xx-x-xxx.ec2.internal has an empty run list.
[2018-08-17T21:18:29+00:00] WARN: Node ip-xxx-xx-x-xxx.ec2.internal has an empty run list.

Converging 0 resources

Running handlers:

Running handlers complete

I am using chef-solo, my cookbooks are located in /var/chef-solo

cat /etc/chef/node.json
{
"run_list": [
"xyzzy::xyz",
],
"environment": "dev"
}

cat /etc/chef/solo.rb

log_level :info
log_location STDOUT
file_cache_path "/var/chef-solo"
cookbook_path "/var/chef-solo/cookbooks"
json_attribs "/etc/chef/node.json"
data_bag_path "/var/chef-solo/data_bags"
role_path "/var/chef-solo/roles"

That's not an error per se, did you pass the node JSON in via -j?

below script alway used to worked chef-solo by default chef-client used to refer to "/etc/chef/" folder where I used to keep node.json and solo.rb, so I am curious why it is not working now? anything changed?

====
#!/bin/bash
source /usr/local/rvm/scripts/rvm
rvm use 2.4.0

            /bin/cp solo.rb /etc/chef/. && /bin/cp node.json /etc/chef/.
            cd /var/chef-solo && /bin/tar xvfz /root/.druid/chef-solo.tar.gz

fi
chef-solo