The five causes that cover almost everything
Output below your minimum: price moved past your slippage tolerance. Deadline passed: the transaction sat unconfirmed too long. Insufficient allowance: the approval was missing, too small, or spent. Out of gas: the gas limit was below what the route needed. Transfer-fee token: the amount arriving was short because the token taxed it.
Each of those produces a different fix, which is why "increase slippage and retry" solves roughly one case in five.
Reading the revert in the explorer
Open the transaction on the network explorer and look at the status and the revert reason. Strings like INSUFFICIENT_OUTPUT_AMOUNT, EXPIRED, TRANSFER_FROM_FAILED and out of gas map directly onto the causes above.
If the explorer shows no revert string, check the gas used against the gas limit. A transaction that consumed exactly the limit ran out of gas rather than failing a check.
When retrying is the wrong move
Each retry costs gas. If the pool is thin and the price impact is large, three retries at rising tolerance can cost more than the amount you were trying to save by not splitting the trade.
If the token takes a fee on transfer, no retry at the same settings will ever succeed, and a retry at a tolerance above the tax succeeds only by paying the tax.
Reducing the failure rate
Quote and sign promptly rather than leaving the screen open. Keep a sensible gas buffer in the native coin of the network you are on. Use an allowance that actually covers the trade. On a volatile minute, accept that a wider tolerance on a deep pair is cheaper than three reverts.
FBT Swap re-quotes before signing and shows the network, the route and the fee, which removes the stale-quote case — the one that produces the most avoidable reverts.