What seems to separate those tradesmen in these circumstances that can happen to anyone, even those with good intentions, is that some people are honest and upfront with the customer right from the beginning. They honestly describe the situation, tell how they are working to make it right, and communicate with the customer honestly and openly throughout the process.
Then there are those who make untrue statements, false claims, bogus excuses, and give evasive answers to questions or no answers at all. These folks get huffed up and indignant if anyone suggests they have done something wrong, and blame everyone but themselves.
It is a matter of honesty versus dishonesty and ethical versus unethical. It is not what happens that separates the two types of individuals, but how each chooses to deal with the situation. Trust, once lost, is gone forever in the business world, at least as far as I am concerned.