#
Troubleshooting: Transaction Problems
Fixing stuck, missing, or failed transactions on Verus.
#
Transaction Not Confirming
Symptom: Transaction shows in wallet but confirmations stays at 0.
Diagnose:
./verus gettransaction "TXID"
# Check "confirmations" field
Causes and solutions:
If a transaction is stuck for more than 10 blocks:
# Check mempool
./verus getmempoolinfo
./verus getrawmempool
# Check if your tx is in the mempool
./verus getrawmempool | grep "YOUR_TXID"
If not in the mempool, the transaction may have been rejected. Check debug.log for details.
#
Double-Spend Errors
Symptom: "error": "bad-txns-inputs-spent" or similar when sending.
Cause: You're trying to spend UTXOs that were already spent in another transaction (possibly unconfirmed).
Solution:
# List unspent outputs
./verus listunspent
# If you see conflicting transactions
./verus listtransactions "*" 20
# Wait for pending transactions to confirm before sending more
If you intentionally need to replace a transaction (rare on Verus):
# Verus doesn't support RBF (Replace-By-Fee)
# Wait for the original to confirm or be dropped from mempool
#
Unconfirmed Balance Stuck
Symptom: getbalance shows less than expected, getunconfirmedbalance shows a non-zero amount that won't clear.
Diagnose:
./verus getbalance
./verus getunconfirmedbalance
./verus getwalletinfo
Solutions:
#
Wait for Confirmations
Most commonly, you just need to wait for mining:
# Check latest transactions
./verus listtransactions "*" 5
# Look at "confirmations" for recent entries
#
Stuck Unconfirmed Transaction
If a transaction has been unconfirmed for a long time (50+ blocks):
# Rescan the wallet
./verus stop
./verusd -daemon -rescan
# Or use the RPC
./verus rescanblockchain
#
Orphaned Transaction
If the transaction was in a block that got orphaned (chain reorganization):
# The wallet should handle this automatically
# If not, rescan:
./verus rescanblockchain
#
Missing Transactions After Rescan
Symptom: After a rescan or wallet restore, some transactions are missing from history.
Cause: The wallet may not have all addresses indexed, especially if:
- You imported keys after initial sync
- You're using a restored
wallet.datfrom backup - Change addresses aren't all accounted for
Solution:
# Full rescan from block 0
./verus rescanblockchain 0
# If you imported a key, make sure to rescan from before the first tx
./verus importprivkey "YOUR_KEY" "" true
# The 'true' parameter triggers a rescan
# For z-addresses
./verus z_importkey "YOUR_SPENDING_KEY" "yes"
# "yes" triggers rescan
Check that your addresses are in the wallet:
./verus getaddressesbyaccount ""
./verus z_listaddresses
#
z_sendmany Operation Failures
Symptom: z_sendmany returns an operation ID, but z_getoperationstatus shows failure.
Diagnose:
# Get operation status
./verus z_getoperationstatus '["opid-xxxxx-xxxx-xxxx"]'
Common failures:
#
"Insufficient transparent funds"
{"id": "opid-...", "status": "failed", "error": {"code": -6, "message": "Insufficient transparent funds"}}
Fix: Check transparent balance:
./verus z_gettotalbalance
# Compare "transparent" vs "private" balances
#
"Insufficient shielded funds"
Fix: Check shielded balance:
./verus z_getbalance "zs1..."
#
"Could not find any non-coinbase UTXOs"
Cause: All your transparent funds are coinbase (mining) rewards that haven't matured yet. Coinbase outputs require 100 confirmations.
Fix:
# Check maturity
./verus listunspent 0 | grep -E '"confirmations"|"generated"'
# Wait for 100 confirmations on mining rewards
#
"Too many outputs"
Cause: z_sendmany has a maximum number of outputs per operation.
Fix: Split into multiple operations with fewer recipients.
#
Operation Stuck in "executing"
# Check all operations
./verus z_getoperationstatus
# If stuck for more than a few minutes, the proving may be slow
# z-transactions require zero-knowledge proof generation which takes time
# Wait up to 5 minutes before assuming failure
# View completed/failed operations
./verus z_getoperationresult
# This returns AND removes completed operations from the list
#
sendcurrency Failures
Symptom: sendcurrency returns an error.
Common errors:
#
"Cannot find currency"
# Verify the currency name/ID
./verus getcurrency "CURRENCY_NAME"
#
"No matching UTXOs found"
Cause: Wallet has no spendable outputs for this currency.
./verus getbalance
./verus listunspent
#
"Amount out of range"
Cause: Sending 0 or negative amount, or amount exceeds balance.
#
Verifying a Transaction On-Chain
# By transaction ID
./verus gettransaction "TXID"
# Raw transaction details
./verus getrawtransaction "TXID" 1
# Check the block it's in
./verus gettransaction "TXID" | grep '"blockhash"'
./verus getblock "BLOCKHASH"
#
See Also
- Common Errors — General error reference
- Sync Issues — Chain sync problems
- Identity Issues — Identity-specific transaction failures
Last updated: 2026-02-07