Retries are one of those things that look harmless until the first time they duplicate a real business operation.

A request times out, so the client retries it.

Reasonable.

But what if the first request actually reached the server?

What if the application already created the order, reserved the stock, sent the message, or called a payment provider — and only the response was lost?