Strava does funky things with the track - even at 1 second GPS polling it cuts mileage. From some reading, it seems to be a combination of the gps track plus initial segment mileage. So if the segment mileage is off, or the trail has changed, it doesn't honor the actual GPS track from your phone app.
Example, my local trail was originally 7.4 miles (full lap segment). It was expanded and became 8.1 for a while (new lap segment), then more work to become 9.1 miles (2020 lap segment) as confirmed with multiple Garmin devices. Strava on my phone would only give me 8.5 miles max for the 2020 segment, so cutting half a mile per lap.
Ok, no big deal....but two laps would cut 2+ miles instead of the expected 1 mile. A 23 mile ride per my buddy's Garmin was only 18 on Strava tracked with my phone.
I bought a Garmin Edge 530 and use it now to track the rides and then upload to Strava. The only reason I use Strava now is gear tracking, which is a feature Garmin Connect has but I can't enter existing mileage for the bike/components.