Hi, I am getting this "Truncated string." error quite a lot during my decoding of string field.
The problem is the end of the buffer, calculations say size is 32 but at the end of the string, it only has to look for 32877. The position where this error occurs is position 90 (in my example) on the buffer which happens to be a string. The size that I see in return (in protobuf code) is 32 which means the code is probably converting it into ascii instead of regular string. As a side note this problem happens when I am using RabbitMQ to receive the data but not when I serialize and deserialize the data within the same code. Also, even after I receive, the data is exactly the same - with the same hex codes and length of the string itself but it just refuses to work. I have been struggling with this since a while now and will appreciate any further input as I want to use protobuf for my serialization. Here's the log around the issue. File ".../python2.7/site-packages/google/protobuf/internal/decoder.py", line 521, in DecodeField raise _DecodeError('----------- Truncated string. buffer[] = {} \n\t new_pos={}; end={}; size={}; pos={}; \n Locals={}'.format(buffer[pos:], new_pos, end, size, pos, locals())) DecodeError: ----------- Truncated string. buffer[] = 32877 new_pos=123; end=96; size=32; pos=91; Locals={'key': <google.protobuf.descriptor.FieldDescriptor object at 0x7fdac9600e10>, 'end': 96, 'field_dict': {<google.protobuf.descriptor. FieldDescriptor object at 0x7fdac9600c90>: <core_pb2.InstrumentId object at 0x7fdac4494140>, <google.protobuf.descriptor.FieldDescriptor object at 0x7fdac9600d50>: <mkt_pb2.MarketInfoL1 object at 0x7fdac44942a8>, <google. protobuf.descriptor.FieldDescriptor object at 0x7fdac9600cd0>: <core_pb2. DateTime object at 0x7fdac4494230>, <google.protobuf.descriptor. FieldDescriptor object at 0x7fdac9600d10>: 1}, 'new_pos': 123L, 'buffer': '\n\x1a\x08\x08\x12\x16FUTURE|XSES|NKZ15|1512\x12\x11\x08\xe6\xf5\xcd\t\x12\n\x08\xbc\x98\x05\x10\xb8\x98\x88\x96\x01\x18\x01"&\x08\x93\xc6\r\x10\x01\x1a\x1a\x08\x08\x12\x16FUTURE|XSES|NKZ15|15122\x02\x10\n: 32877', 'pos': 91L, 'local_DecodeVarint': <function DecodeVarint at 0x7fdac980b0c8>, 'message': <box_pb2.RawTick object at 0x7fdac4492de8>, '_ConvertToUnicode': <function _ConvertToUnicode at 0x7fdac970ecf8>, 'size': 32L} I modified the *google/protobuf/internal/decoder.py* file to create that log so that I can see what's happening but I could only go so far. 515 def DecodeField(buffer, pos, end, message, field_dict): 516 print('++++++++++++++Truncated string. buffer[] = {} \n\t end={}; pos={}; \n Locals={}'.format(buffer, end, pos, locals())) 517 (size, pos) = local_DecodeVarint(buffer, pos) 518 # size = 1 519 new_pos = pos + size 520 if new_pos > end: 521 raise _DecodeError('----------- Truncated string. buffer[] = {} \n\t new_pos={}; end={}; size={}; pos={}; \n Locals={}'.format(buffer[pos :], new_pos, end, size, pos, locals())) 522 field_dict[key] = _ConvertToUnicode(buffer[pos:new_pos]) 523 return new_pos 524 return DecodeField Thank you for your time. -- You received this message because you are subscribed to the Google Groups "Protocol Buffers" group. To unsubscribe from this group and stop receiving emails from it, send an email to protobuf+unsubscr...@googlegroups.com. To post to this group, send email to protobuf@googlegroups.com. Visit this group at http://groups.google.com/group/protobuf. For more options, visit https://groups.google.com/d/optout.