If we just let the error bubble up then you will end up at the error clauses here: https://github.com/opscode/chef/blob/master/lib/chef/application/client.rb#L336

The logic there I think should be okay (since I think the use case people have in mind here is when running chef-client from cron).