What causes "elasticsearch.exceptions.ConnectionError: ConnectionError ... error('getaddrinfo() argument 2 must be integer or string',)))
elasticsearch, python
Solution
It seems urllib3 (version 1.9 at least) doesn't like the port being passed in as a unicode string. Changing `port` to a byte string or an int, fixes this, ie:
es = elasticsearch.Elasticsearch([{u'host': u'127.0.0.1', u'port': b'9200'}])
or
es = elasticsearch.Elasticsearch([{u'host': u'127.0.0.1', u'port': 9200}])
Problem
With this minimal code: ``` import elasticsearch es = elasticsearch.Elasticsearch([{u'host': u'127.0.0.1', u'port': u'9200'}]) # then do anything involving a connection, eg: es.indices.exists_alias('foo') ``` And I'm getting this error: ``` Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/johnc/.virtualenvs/myproject/local/lib/python2.7/site-packages/elasticsearch/client/utils.py", line 68, in _wrapped return func(*args, params=params, **kwargs) File "/home/johnc/.virtualenvs/myproject/local/lib/python2.7/site-packages/elasticsearch/client/indices.py", line 348, in exists_alias params=params) File "/home/johnc/.virtualenvs/myproject/local/lib/python2.7/site-packages/elasticsearch/transport.py", line 276, in perform_request status, headers, data = connection.perform_request(method, url, params, body, ignore=ignore, timeout=timeout) File "/home/johnc/.virtualenvs/myproject/local/lib/python2.7/site-packages/elasticsearch/connection/http_urllib3.py", line 51, in perform_request raise ConnectionError('N/A', str(e), e) elasticsearch.exceptions.ConnectionError: ConnectionError(('Connection aborted.', error('getaddrinfo() argument 2 must be integer or string',))) caused by: ProtocolError(('Connection aborted.', error('getaddrinfo() argument 2 must be integer or string',))) ``` What's happening?