Fix a swap problem

TRANSFER_FROM_FAILED: check allowance, balance and token restrictions

Check the token pull step when a swap fails with TRANSFER_FROM_FAILED or a related transfer error.

A transfer-from error means a contract could not pull the required token amount through the attempted token-transfer operation. The error label alone does not tell you whether the cause was balance, allowance or a token-specific restriction.

Check balance and allowance separately

Confirm that the input token balance belongs to the signing account on the chosen chain. Then inspect the allowance for the actual spender—not merely a router name shown in the interface. ERC-6093 distinguishes insufficient balance from insufficient allowance precisely because they are different failure conditions.

An approval of 100 units does not create a 100-unit balance. Conversely, holding 100 units does not authorize an unrelated spender to move them.

Look at token behavior

If both values are sufficient, check for pauses, address restrictions, transfer deductions and router compatibility. Uniswap documents fee-on-transfer incompatibility in its v3 routers. That example illustrates why a standard-looking token can fail in a route whose assumptions do not match its behavior.

A fresh approval is not automatically the solution. Repeated approvals to a wrong spender consume fees and increase permission exposure without changing the failing transfer.

What to send support

Include the failed hash or simulation message, input contract, amount, sender and spender. If a decoded custom error includes current and needed values, preserve them exactly. Ask which transfer failed; an aggregator route can involve several token movements. Do not assume the first transfer shown in a user interface is the operation that triggered the revert.

Sources & verification (3)

Source-check date is recorded in the article details. URLs are provided for manual verification. Use Copy to keep this page open.

  1. ERC-6093: Custom errors for commonly-used tokens

    Distinct structured errors for insufficient balance and allowance.

    https://eips.ethereum.org/EIPS/eip-6093
  2. ERC-20: Token Standard

    Allowance, spender, transferFrom, metadata and approval event semantics.

    https://eips.ethereum.org/EIPS/eip-20
  3. Token Integration Issues

    Fee-on-transfer router incompatibility; rebase effects are nuanced. Conflicts with broader help-center claim, so do not claim all rebase swaps fail.

    https://developers.uniswap.org/docs/protocols/v3/concepts/unsupported-tokens

Continue reading

Allowance too low after a successful approval A token transfer is paused or your address is blocked