My understanding was boto handled this with exponential backoff and retry. However exceptions don't seem to be handled. We a lot of jobs running playbooks in parallel and when multiple jobs kick off, most of the fail due to this error.
08:56:53 self.elb.configure_health_check(self.elb.health_check)
08:56:53 File "/usr/local/lib/python2.7/dist-packages/boto/ec2/elb/loadbalancer.py", line 310, in configure_health_check
08:56:53 return self.connection.configure_health_check(self.name, health_check)
08:56:53 File "/usr/local/lib/python2.7/dist-packages/boto/ec2/elb/__init__.py", line 576, in configure_health_check
08:56:53 return self.get_object('ConfigureHealthCheck', params, HealthCheck)
08:56:53 File "/usr/local/lib/python2.7/dist-packages/boto/connection.py", line 1208, in get_object
08:56:53 raise self.ResponseError(response.status, response.reason, body)
08:56:53 boto.exception.BotoServerError: BotoServerError: 400 Bad Request
08:56:53 <ErrorResponse xmlns="http://elasticloadbalancing.amazonaws.com/doc/2012-06-01/">
08:56:53 <Error>
08:56:53 <Type>Sender</Type>
08:56:53 <Code>Throttling</Code>
08:56:53 <Message>Rate exceeded</Message>
08:56:53 </Error>
08:56:53 <RequestId>7e8d6104-3920-11e6-9950-679774408258</RequestId>
08:56:53 </ErrorResponse>
Does the rescue block handle these and can you use a retries on a block?