A corrupted track is either a Frankenstein track or a track with a non-linear timestamp.
In general a track can have 2, 3 or 4 dimensions per track point. Either one is fine for QMS. Depending on the available dimensions secondary data is derived. The algorithm starts to derive data depending on the dimensions available at the first point. If it hits a track point missing a dimension it stops and the track is considered as corrupt.
In other words: If a track sticks to a number of dimensions (either 2, 3 or 4) and if there is a timestamp, that's not jumping back and forth in time, everything is fine for QMS.
Most tracks available on the Internet are Frankenstein tracks. A messy mesh-up of recorded data and various other questionable sources. The first thing I do with those tracks is to strip any timestamp and elevation data. If I have good quality elevation data for the area I add it to the track. Then I store it for further use.
To get large collections of tracks into shape I would write a small Python script to strip all the useless junk from the tracks to get plain tracks with 2 dimensions. Keep your data clean and tidy instead of messing with a sloppy and clunky data Behemoth.