There are several reasons why a transaction can fail when using Uniswap.
The Uniswap interface sets a default slippage limit of 0.5%. This slippage limit is the different between your expected output and the real output at the time of your swap. If the real output changes by more than your set slippage, the transaction will fail.
At your own risk, you can adjust the slippage limits.
Transaction deadline expired:
The Uniswap interface sets a transaction deadline of 30 minutes to prevent users from swapping after significant price movement. Your transaction may reach the 30 minute deadline if your network fee limit is set too low.
You can try to initiate the transaction again, or adjust your network fee settings to a higher price.
If you do not have enough of your network’s native token to cover the network fees, you will not be able to execute a transaction. Each transaction requires this network fee to execute a transaction.
You can purchase more of your networks native token, adjust your swap amount, or wait for network fees to drop.
The token you are swapping may have a token fee in the token’s contract, and the slippage will need to be increased.
These are great resources to use if you want to see more information about a token or see if there is a buy/sell fee before you swap.
Token not supported by Uniswap
Deflationary tokens are not supported by the Uniswap v3 router. If you are try to execute a transaction with any of these tokens, the transaction with automatically fail. Here is a list of deflationary tokens that are not supported.