What it means
A low-level transferFrom call returned false instead of succeeding. Routers wrap token pulls in this check, so it fires when the approval is missing, the balance is short, or the token contract itself refused the transfer (paused, blocklisted, or non-standard).
How to fix it
Check approval first, balance second. If both are fine, inspect the token: paused or restricted tokens fail here by design, and no wallet setting fixes that.