I looked in the log book on the watch, and it shows the run as 5.06 miles (163% of target). So the watch knew the 5k distance was 3.1 miles, it was just wildly inaccurate in measuring it. So, not a bug with the app.
I get that indoor running won’t be ‘accurate’, but that is rediculous. Hopefully there is some automatic calibration happening when I’m outdoors with GPS signal for it to learn my body or something. Never had this problem with other brand watches. They have always been within a few tenths of a mile difference, even at short distances like a 5k.