question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

UnicodeDecodeError: 'ascii' codec can't decode byte

See original GitHub issue

Hello,

I’ve searched for this error and have found several closed issues for this error, but I am getting the following error:

Traceback (most recent call last):
  File "/webroot/common-content/new_lambda_function.py", line 52, in lambda_handler
    index_response = es.index(index="resources", doc_type="resource", id=resource['content']['id'], body=resource['content'])
  File "/webroot/common-content/venv/local/lib/python2.7/site-packages/elasticsearch/client/utils.py", line 69, in _wrapped
    return func(*args, params=params, **kwargs)
  File "/webroot/common-content/venv/local/lib/python2.7/site-packages/elasticsearch/client/__init__.py", line 279, in index
    _make_path(index, doc_type, id), params=params, body=body)
  File "/webroot/common-content/venv/local/lib/python2.7/site-packages/elasticsearch/transport.py", line 329, in perform_request
    status, headers, data = connection.perform_request(method, url, params, body, ignore=ignore, timeout=timeout)
  File "/webroot/common-content/venv/local/lib/python2.7/site-packages/elasticsearch/connection/http_requests.py", line 68, in perform_request
    response = self.session.request(method, url, data=body, timeout=timeout or self.timeout)
  File "/webroot/common-content/venv/local/lib/python2.7/site-packages/requests/sessions.py", line 468, in request
    resp = self.send(prep, **send_kwargs)
  File "/webroot/common-content/venv/local/lib/python2.7/site-packages/requests/sessions.py", line 576, in send
    r = adapter.send(request, **kwargs)
  File "/webroot/common-content/venv/local/lib/python2.7/site-packages/requests/adapters.py", line 376, in send
    timeout=timeout
  File "/webroot/common-content/venv/local/lib/python2.7/site-packages/requests/packages/urllib3/connectionpool.py", line 559, in urlopen
    body=body, headers=headers)
  File "/webroot/common-content/venv/local/lib/python2.7/site-packages/requests/packages/urllib3/connectionpool.py", line 353, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/usr/lib/python2.7/httplib.py", line 979, in request
    self._send_request(method, url, body, headers)
  File "/usr/lib/python2.7/httplib.py", line 1013, in _send_request
    self.endheaders(body)
  File "/usr/lib/python2.7/httplib.py", line 975, in endheaders
    self._send_output(message_body)
  File "/usr/lib/python2.7/httplib.py", line 833, in _send_output
    msg += message_body
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 568: ordinal not in range(128)

It seems that a previously posted workaround has been implemented (https://github.com/elastic/elasticsearch-py/issues/374). This issue report is my problem exactly, is there any solution to this with Python 2.7? There is no chance of converting to Python 3 since AWS Lambda does not support it.

Thanks!

Issue Analytics

  • State:closed
  • Created 7 years ago
  • Comments:8 (3 by maintainers)

github_iconTop GitHub Comments

7reactions
sddjcommented, May 10, 2017

image I know this is old and dead, but I ran into this issue when using requests_aws4auth==0.9, and I thought it might be helpful to share what I found. The aws4auth.py file includes ‘from future import unicode_literals’, which makes all of the strings in the file unicode instances, including the strings used for HTTP header keys. Python’s httplib puts all the headers together into the msg variable above, and since merging unicode instances with str instances results in a unicode instance, msg is a unicode. The httplib code is assuming that msg is a str instance (since msg at this point is just the HTTP request header and should be ASCII). It then tries to append the request body (which is a str that has already been encoded into the charset specified in the Content-Type header) to the request header (which should be a str but is a unicode because of aws4auth.py), and you get an error. I’m not sure really who is at fault here, but I think the aws4auth.py should not be setting unicode HTTP headers.

4reactions
cristobalclcommented, May 6, 2016

I fix this isuue with this hack: http://stackoverflow.com/a/17628350/482177

Any better way to fix it?

Read more comments on GitHub >

github_iconTop Results From Across the Web

How to fix: "UnicodeDecodeError: 'ascii' codec can't decode ...
UnicodeDecodeError: 'ascii' codec can't decode byte generally happens when you try to convert a Python 2.x str that contains non-ASCII to a Unicode...
Read more >
UnicodeDecodeError: 'ascii' codec can't decode byte
The Python "UnicodeDecodeError: 'ascii' codec can't decode byte in position" occurs when we use the ascii codec to decode bytes that were ...
Read more >
UnicodeDecodeError: 'ascii' codec can't decode byte - Intellipaat
1 Answer. To fix “UnicodeDecodeError you can use the following piece of code this is the default encoding of python is utf8. After...
Read more >
UnicodeDecodeError: 'ascii' codec can't decode byte - GitHub
Questions and Help I am facing this issue , When I run the VQA colab notebook it works perfectly well , but when...
Read more >
UnicodeDecodeError - Python Wiki
Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found