[23 67 102 56 ... ]
выглядит как кусок целых чисел, я предполагаю, что целые числа - это байтовые значения. Если это правда, это не поток protobuf!
Глядя на protobuf docs , первый байт всегда является ключом varint. Он состоит из номера поля (первые 5 бит) и типа провода (последние 3 бита). Ваш int 23 выглядит так:
0001 0111
^ ^
varint wiretype
Допустимые типы проводов показаны в документации. Ваше двоичное значение 111
является десятичным 7
, которое не является одним из перечисленных типов. Отсюда: cannot parse reserved wire type
Type Meaning Used For
0 Varint int32, int64, uint32, uint64, sint32, sint64, bool, enum
1 64-bit fixed64, sfixed64, double
2 Length-delimited string, bytes, embedded messages, packed repeated fields
3 Start group groups (deprecated)
4 End group groups (deprecated)
5 32-bit fixed32, sfixed32, float