I'm using chef's knife to launch new ec2 instances. This works generally well, but every 2-3 attempts it fails and I get the following stack:
[Sun, 10 Apr 2011 08:11:23 +0000] INFO: Client key /etc/chef/client.pem is not present - registering
[Sun, 10 Apr 2011 08:11:29 +0000] WARN: HTTP Request Returned 401 Unauthorized: Failed to authenticate as i-XXXXXXX. Ensure that your node_name and client key are correct.
/usr/lib/ruby/1.8/net/http.rb:2101:in `error!': 401 "Unauthorized" (Net::HTTPServerException)
from /usr/lib/ruby/gems/1.8/gems/chef-0.9.14/bin/../lib/chef/rest.rb:234:in `api_request'
from /usr/lib/ruby/gems/1.8/gems/chef-0.9.14/bin/../lib/chef/rest.rb:285:in `retriable_rest_request'
from /usr/lib/ruby/gems/1.8/gems/chef-0.9.14/bin/../lib/chef/rest.rb:215:in `api_request'
from /usr/lib/ruby/gems/1.8/gems/chef-0.9.14/bin/../lib/chef/rest.rb:111:in `get_rest'
from /usr/lib/ruby/gems/1.8/gems/chef-0.9.14/bin/../lib/chef/node.rb:525:in `load'
from /usr/lib/ruby/gems/1.8/gems/chef-0.9.14/bin/../lib/chef/node.rb:510:in `find_or_create'
from /usr/lib/ruby/gems/1.8/gems/chef-0.9.14/bin/../lib/chef/client.rb:218:in `build_node'
from /usr/lib/ruby/gems/1.8/gems/chef-0.9.14/bin/../lib/chef/client.rb:145:in `run'
from /usr/lib/ruby/gems/1.8/gems/chef-0.9.14/bin/../lib/chef/application/client.rb:222:in `run_application'
from /usr/lib/ruby/gems/1.8/gems/chef-0.9.14/bin/../lib/chef/application/client.rb:212:in `loop'
from /usr/lib/ruby/gems/1.8/gems/chef-0.9.14/bin/../lib/chef/application/client.rb:212:in `run_application'
from /usr/lib/ruby/gems/1.8/gems/chef-0.9.14/bin/../lib/chef/application.rb:62:in `run'
from /usr/lib/ruby/gems/1.8/gems/chef-0.9.14/bin/chef-client:26
from /usr/bin/chef-client:19:in `load'
from /usr/bin/chef-client:19
This is a non-deterministic failure (might it have something to do with a race condition?).