It depends what any written contract says but no, it would not be normal to withhold such a substantial sum against such a minor incident, assuming it is minor. I suggest you find out what the cost is, offer to pay it via the roofing company and demand the balance of your £20000 assuming it is currently due. Happy to discuss further. I hope that helps. Please leave a positive rating so that I am credited for my time.