Most retry advice assumes the operation you are retrying is free. For a shipping label API that assumption is wrong in an expensive way: the call creates a real object, it bills you when it succeeds, and the failure mode you actually hit is a timeout after the carrier already did the work. Your client sees an error. The carrier has a label, a tracking number and a charge. Retry naively and now you have two of each, one of which will never be scanned, and at some point in the quarter that turn...