On the face of it, addressing a bug is a clear-cut process. The behavior should be this, but it’s actually that—just work out why and fix it.
Many bugs are indeed that straightforward. Sometimes, however, if the bug manifests in a version of the software that is already in users’ hands, you might need to worry about backward compatibility.
The problem is that, if they’ve been using a version containing the bug for a while, your users may have come to rely upon it doing the wrong thing in some way. So, if you fix it without thinking about the consequences, you’re likely to have a number of very unhappy users.
Of course, nobody deliberately relies upon broken behavior. Unfortunately, it can be very easy to end ...