polyvertex/fitdecode

Fit parsing error

Kypaz opened this issue · 8 comments

Kypaz commented

Hello, I have a fit reading problem (the file is attached)

FIT parsing error @ 235: invalid field size 1 for type uint32 (expected a multiple of 4)

I have the problem with 0.7 or 0.6

The supposed FIT SDK version of the file is 20.63.0 (told by supplier of fit file)

I imported succesfully this fit file in Garmin Connect so this is not a corrupted file

Can you help me?

Best regards,

Alexandre [Bouquet]
fit_error.fit.zip

Kypaz commented

Any idea?

Best,
Alexandre

Do you happen to know the device model that generated the file initially? Note that sometimes it can be found in the fit file itself.

Kypaz commented

Hello,

The model is the COROS VERTIX

But I have asked the supplied, I cannot read the file at all with fitdecode, it crashes too early

Thank your for your help

Hello @polyvertex

I got a similar issue, when the exception is raised I cannot read further records.

Thanks

Kypaz commented

Any update?

@Kypaz:
I've tried your file and it is working with the Garmin SDK FIT CSV Tool - Protocol 2.0 Profile 21.40 Release. I can decode it, open the csv and re-encode it. So It must be the lib from what I have checked.

Hi
I got the same error with a fit file from Coros Pace 2.
I guess dtcooper/python-fitparse#116 would also fix this here?

I've tried your file and it is working with the Garmin SDK FIT CSV Tool - Protocol 2.0 Profile 21.40 Release. I can decode it, open the csv and re-encode it. So It must be the lib from what I have checked.

FYI SDK's tool seems to skip unknown types/fields, such that it goes silent about this kind of errors, whereas both fitdecode and fitparse libraries intend to dig into types definitions. So that they parse FIT data in a stricter way, not permissive with malformed files.

I will add an option flag to enable a more permissive parsing that still proceed when possible.