But see, heres the thing. As the customer, I really dont care whos fault it is. Im trusting you (not you personally, but you as in whatever shop) to do what was agreed upon in the time frame and cost agreed to. I dont care if your supplier is out of parts, or if it burns to the ground. Not my problem. Either get me what I ordered, or give me back my money.
Prime example: when I was working in our steel shop we had a go to guy for powder coating. At the time, we likely had 50k worth of steel at this shop. Out of the blue, his shop catches on fire and then collapses. Completely out of our control and no one truly at fault. Our customer didnt care, all they care about is the project deadline. So, the next day we hired more truckers and went and got all our steel. Brought it back and figured out what we could save. Took what was still straight to another shop and had it redone, worked overtime to fix the rest and get it coated. Still made the deadline. Cost us untold thousands of dollars, but we now have several jobs with that contractor.
Bottom line, all the customer cares about is getting what was paid for. Anything else is the shops problem. Find a new source, work overtime, whatever it takes.