Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

UTF-8 decoding error parsing protobuf #36

Open
niallsmart opened this Issue · 3 comments

3 participants

@niallsmart

I've started to see UTF-8 decoding exceptions being thrown by the google protobuf library when parsing Spotify responses:

Example stack trace below:

  File "../spotify_web/spotify.py", line 249, in parse_metadata
    header.ParseFromString(base64.decodestring(resp[0]))
  File "/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/google/protobuf/message.py", line 179, in ParseFromString
    self.MergeFromString(serialized)
  File "/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/google/protobuf/internal/python_message.py", line 755, in MergeFromString
    if self._InternalParse(serialized, 0, length) != length:
  File "/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/google/protobuf/internal/python_message.py", line 782, in InternalParse
    pos = field_decoder(buffer, new_pos, end, self, field_dict)
  File "/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/google/protobuf/internal/decoder.py", line 410, in DecodeField
    field_dict[key] = local_unicode(buffer[pos:new_pos], 'utf-8')
UnicodeDecodeError: 'utf8' codec can't decode byte 0x8d in position 13: invalid start byte
@Hexxeh
Owner

This should now be fixed, please confirm.

@niallsmart

Yep, that fixed it – though I am now seeing an error on process exit, not sure if this is related:

Exception in thread Thread-1 (most likely raised during interpreter shutdown):
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 552, in __bootstrap_inner
  File "/usr/lib/python2.7/threading.py", line 505, in run
  File "/home/pi/local/lib/python2.7/site-packages/SpotifyWebsocketAPI-0.2-py2.7.egg/spotify_web/spotify.py", line 740, in heartbeat_handler
  File "/home/pi/local/lib/python2.7/site-packages/SpotifyWebsocketAPI-0.2-py2.7.egg/spotify_web/spotify.py", line 594, in heartbeat
  File "/home/pi/local/lib/python2.7/site-packages/SpotifyWebsocketAPI-0.2-py2.7.egg/spotify_web/spotify.py", line 643, in send_command
<type 'exceptions.TypeError'>: 'NoneType' object is not callable
@adammw

FYI, I think the Reply to a MercuryRequest is also another MercuryRequest. Updating to the latest MercuryRequest format and using it for decoding replies works for me with node-spotify-web.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.