Imagine you accidentally made a build of your app with version 2 and uploaded that to App Store Connect for TestFlight even though you're still working on version 1.x and continue to do so with your public releases.
Here's an example:
The build 55 is the accidental 2.0 version, but the current releases are 209 and 210 with a lower string version.
So, that one build of version 2 was a mistake. Sadly, you cannot remove it, even it has expired, even if it has never seen the outside of TestFlight. And it's a bit annoying too, because it stays up there at the top of your builds, and always presents the outdated version when you visit that page on App Store Connect.
But worse is the fact that because of this, any version 1.x you release since then will not get you any crash reports or feedback that the user may have submitted to you.
This is clearly a bug, and I was able to verify this just recently.
I suspect this happens because Apple wants to avoid storing and forwarding reports for outdated versions, maybe to save space on their servers. That makes somewhat sense, though I've also had people finding crashes in older versions that were not fixed in the latest version, so I'd still like to get those reports from older versions.
However, if Apple really only wants to keep crash reports and feedback msgs from the latest release, then Apple's mistake is that they use the unreliable string version to check which is the latest version instead of using the build number, which is ENFORCED by Apple to always be incrementing for each upload.
If you are in the same boat, please comment so that we can make it clear to Apple that this is not an isolated issue.