title: intermittent Unable to locate credentials
body: <p>We are using the following version of Boto to write to SQS -</p>
  
  <ul>
  <li>boto3==1.7.16 </li>
  <li>botocore==1.10.16</li>
  </ul>
  
  <p>The code is running successfully in production environment, but once in a while we see the following intermittent error -</p>
  
  <p><code>NoCredentialsError</code> Unable to locate credentials.</p>
  
  <p>The following is the stack trace -</p>
  
  <pre><code>File "botocore/client.py", line 317, in _api_call
      return self._make_api_call(operation_name, kwargs)
  File "botocore/client.py", line 602, in _make_api_call
      operation_model, request_dict)
  File "botocore/endpoint.py", line 143, in make_request
    return self._send_request(request_dict, operation_model)
  File "botocore/endpoint.py", line 168, in _send_request
    request = self.create_request(request_dict, operation_model)
  File "botocore/endpoint.py", line 152, in create_request
    operation_name=operation_model.name)
  File "botocore/hooks.py", line 227, in emit
    return self._emit(event_name, kwargs)
  File "botocore/hooks.py", line 210, in _emit
    response = handler(**kwargs)
  File "botocore/signers.py", line 90, in handler
    return self.sign(operation_name, request)
  File "botocore/signers.py", line 154, in sign
    auth.add_auth(request)
  File "botocore/auth.py", line 352, in add_auth
    raise NoCredentialsError
  </code></pre>
  
  <p>We have the following api which can be called from multiple threads -</p>
  
  <pre><code>    def client(self):
          if not self._client:
              self._client = boto3.client('sqs', self.region)
          return self._client
  </code></pre>