Skip to main content
This guide helps you diagnose and resolve issues with CCTP transfers that appear stuck or fail to complete. A CCTP transfer involves three stages, and problems can occur at any point in the process.

Transfer stages

A CCTP transfer consists of three stages:
  1. Burn: USDC is burned on the source blockchain
  2. Attestation: Circle’s Attestation Service observes the burn and signs a message
  3. Mint: The signed attestation is submitted to mint USDC on the destination blockchain
If your transfer appears stuck, first identify which stage has the issue.

Identify where your transfer is stuck

Use the following steps to determine the current state of your transfer:
1

Check the burn transaction

Verify the burn transaction succeeded on the source blockchain using a block explorer. If the transaction failed or is pending, the issue is at the burn stage.
2

Query the attestation API

Call the GET /v2/messages endpoint with your transaction hash.Interpret the response:
  • 404 response: The attestation service hasn’t observed the burn yet. This is normal and expected. See Why 404 responses are expected.
  • Empty messages array: The burn exists but hasn’t been processed yet.
  • Status pending: The burn is awaiting block confirmations.
  • Status complete with attestation: The attestation is ready. If your transfer is stuck, the issue is at the mint stage.
3

Check the mint transaction

If you have an attestation but your destination wallet doesn’t have the USDC, either:
  • The mint transaction was never submitted
  • The mint transaction failed
Check your destination blockchain for any failed receiveMessage transactions.

Common issues and solutions

IssueCauseSolution
404 persists for extended timeBurn transaction may have failed or is still confirmingVerify burn succeeded on block explorer, if it failed, retry the burn
Attestation status remains pendingWaiting for block confirmationsWait for sufficient confirmations based on finality threshold
Have attestation but mint failsGas issues, incorrect parameters, or nonce already usedSee Retry a Failed Mint