Ever since ETH trading launched on mainstream custodial exchanges, traders have been having this problem.
With Bitcoin, you could get away with sending BTC directly between exchanges - although technically you are not allowed to do that for legal reasons.
Either way, most people assumed the same would go through with ETH.
Sending coins between exchanges does not work with ETH
It does not. Exchanges process ETH withdrawals via a smart contract, and deposits via different smart contract. It is a script, not a simple wallet to wallet transaction.
And for the security of the funds, the deposit smart contract will reject any funds that come from a smart contract, not from a plain wallet.
If you send ETH directly from another exchange, it will be coming from a contract and it will not be credited on the receiving side.
Sending USDt between exchanges
The same rule as for ETH extends for any token that lives on the ETH blockchain. With any ERC20 token, transactions to and from exchanges get processed via smart contracts and funds incoming from a contract rather than from a wallet are typically rejected.
That means that you need to be careful even with stablecoins like Tether. USDt was originally built on the Omni layer to extend bitcoin, but currently uses several different blockchains for transport.
USDt currently supports the following transport protocols: Bitcoin (Omni and Liquid Protocol), Ethereum, EOS, Tron, Algorand, BCH and OMG.
Since Tether tokens are available via several protocols, to send USDt tokens you need to carefully check the destination address to confirm you are selecting the correct transport protocol.
Transporting USDt in its ERC20 form is not possible directly between exchanges.
The legal issues with sending cryptos between exchanges: Do not test them on this in 2021
The legal part of this PSA, if you are interested.
In 2020 the authorities started cracking down hard on non-KYC exchanges.
Sending money directly between two crypto trading platforms is problematic in this regard. If you think about what it actually does, you will find it could be interpreted as sending money between two banks.
The only exchange that has a banking license is Kraken.
You can safely assume that the most popular exchanges like Bitfinex will not get anything close to a banking license anytime soon.
What if you already did it?
The receiving exchange still has the money. It is not completely lost.
What you need is to contact the customer service and get them to manually credit it.
This can lead to varying amounts of trouble, depending how overloaded the support system currently is.
In periods of heavy market action, the support will be overloaded and you will probably need to harass them on social media for attention. They might also charge you for solving deposit issues.
Also, due to the legal issues above, it is possible they will refuse to help you.
Anyway, it is better to try.