This seems to happen with unbreaking tools when the tool would otherwise break (i.e.: it has a single unit of durability remaining), but the unbreaking subsequently re-adds the use to the tool. The client doesn't know that the server might un-break the tool, so it subtracts one durability, makes the tool break, then the server responds, "Oh no, it's fine don't worry about it, it's still got a use left."
This seems to happen with unbreaking tools when the tool would otherwise break (i.e.: it has a single unit of durability remaining), but the unbreaking subsequently re-adds the use to the tool. The client doesn't know that the server might un-break the tool, so it subtracts one durability, makes the tool break, then the server responds, "Oh no, it's fine don't worry about it, it's still got a use left."