There's a more subtle issue with fixing bugs once you have shipped: Some customers might consider the bug as part of the product and built functionalities around it.
Learned of this one [0] the other day, in the remarks of System.Net.IPAddress.TryParse:
"Fixing this bug would break existing apps, so the current behavior will not be changed"
In other words, the obvious method to use to validate whether or not a string contains a valid IP address can't be used because existing applications expect the broken behavior, and thus it will not be fixed. Correct parsing of an IP address is an exercise now left to the user (to get wrong).
https://xkcd.com/1172/
https://www.joelonsoftware.com/2004/06/13/how-microsoft-lost...