What it means
The transaction ran and the smart contract rejected it: a require() condition failed, an assertion tripped, or the contract explicitly reverted. Every state change was rolled back as if it never happened, but the gas used up to that point is spent. On its own this message does not say WHY, the specific reason is in the revert data.
How to fix it
Decode the actual reason: replaying the transaction reveals the revert string, custom error, or panic code behind the generic message. Paste the transaction hash into a decoder (our checker at /tx does this) rather than guessing. The most common underlying causes are a missing token approval, slippage, and a deadline that passed.