DEV Community

PayVectro Labs
PayVectro Labs

Posted on Edited on Originally published at payvectro.com

Why a bulk send fails or reverts, and what to do

A bulk send usually fails for one of five reasons: the token allowance is too low, the balance is short, the token does not behave like a standard ERC-20, the wallet is on the wrong network, or the transaction was replaced or dropped. A batch is all or nothing, so a reverted batch pays nobody and can be sent again.

Causes and fixes

Cause What to check What to do
Allowance too low The approval was for less than the batch total, or it was spent by an earlier batch. Approve again for the total, then resend the batch.
Balance short The wallet holds less than the batch total, or no gas token for fees. Top up the token or the native gas token, then resend.
Unsupported token Fee-on-transfer and rebasing tokens change the amount in transit, so the totals do not add up. These tokens are rejected. Use a standard token.
USDT on Ethereum The Disperse contract does not handle tokens with missing return values. Blocked in the interface. Send USDT another way.
Wrong network The wallet is on a different chain than the one selected. Switch the wallet to the selected network and resend.
Replaced or dropped transaction You sped up or cancelled in the wallet, or the transaction never got mined. Check the history. A batch counts as confirmed only after a success receipt. Resend the batches that are not confirmed.

Before you resend

  1. Open the history and check which batches are confirmed. Do not resend a confirmed batch.
  2. Look up the transaction hash on the chain's block explorer to see whether it succeeded, failed or is still pending.
  3. Fix the cause from the table.
  4. Resend only the batches that are not confirmed. PayVectro can resume at the next unconfirmed batch.
  5. Export the CSV with transaction hashes when you are done.

FAQ

If a batch reverts, did anyone get paid?
No. A batch is all or nothing, so a reverted batch pays nobody in that batch.

Can I just send the whole list again?
Not safely. Check the history first and resend only the batches that are not confirmed, or a recipient can be paid twice.

Why does it say confirmed only sometimes?
History shows confirmed only after a success receipt from the chain, not when the wallet shows a pending transaction.

Does a failed send cost anything?
A reverted transaction still uses gas. PayVectro currently charges no fee.

PayVectro sends through the public Disperse contract on 9 mainnet networks and its own contract on Sepolia testnet. You sign every transaction from your own wallet.

Originally published at payvectro.com/guides/bulk-send-failed-reverted.

Top comments (0)