An unknown message generates all unknown fields, which by default are of type 'enum'. In a stream using compressed timestamp headers that includes unknown messages (as is the case for a Garmin FR70 ACTIVITY file), treating the unknown Timestamp field as a single byte enum rather than a 4 byte value corrupts the following compressed timestamps in the stream.
I have a quick set of fixes to Decode, Factory, and Field to set the Field type based on the unknown message MessageDefinition. This corrects the problem and helps properly process fields within unknown messages.
What is the appropriate way to post such fixes back to the development team working on the next rev of the SDK? Send me a note if you would like a copy of my fixes.