Sent t-addr transactions not appearing

I’m running zcashd on linux, and my node is fully synced now, however I attempted to send a transaction while it was still catching up and may have gotten myself into a bad state. My goal is to send from my local t-addr to a t-addr in another wallet (that I also control).

First, I tried using the stardard bitcoid rpc call:
$ zcash-cli sendtoaddress $TARGET 0.01

This returned me a tx id, let’s call it $TXID0. However, after waiting quite a while, it didn’t show up in my other wallet, and I can’t see any evidence of it on explorer.zcha.in. I have since restarted the daemon with -rescan, and now if I try zcash-cli gettransaction $TXID0, it returns a valid tx, but it seems like that tx never broadcasted? I used the default fee, and this is a small test transaction, so maybe that’s why?

Then I read on another forum post that sendtoaddress is deprecated, so I tried again using:
$ zcash-cli z_sendmany $MY_T_ADDR [{“address”: “$TARGET”, “amount”: 0.01}]

This returned me an opid, lets call id $OPID0. Then, getting the result of that opid returned me a new tx, $TXID1. Now, some 30 minutes later, I still don’t see either tx on the chain, and my new wallet doesn’t collect the coins. I also see a “wallet conflict”, possibly because I generated two conflicting tx’s with the same wallet. Am I screwed? Here’s what I get now, locally (replacing the raw tx ids and addresses with my varaibles):

$ zcash-cli gettransaction "$TXID0"
{
  "amount": -0.01000000,
  "fee": -0.00000226,
  "confirmations": -1,
  "txid": "$TXID0",
  "walletconflicts": [
    "$TXID1"
  ],
  "time": 1498188267,
  "timereceived": 1498188267,
  "comment": "$MY_COMMENT",
  "vjoinsplit": [
  ],
  "details": [
    {
      "account": "",
      "address": "$TARGET",
      "category": "send",
      "amount": -0.01000000,
      "vout": 0,
      "fee": -0.00000226,
      "size": 226
    }
  ],
  "hex": "<CUT>"
}
$
$ zcash-cli gettransaction "$TXID1"
{
  "amount": -0.01000000,
  "fee": -0.00010000,
  "confirmations": 0,
  "txid": "$TXID1",
  "walletconflicts": [
    "$TXID0"
  ],
  "time": 1498188267,
  "timereceived": 1498232267,
  "comment": "$MY_COMMENT",
  "vjoinsplit": [
  ],
  "details": [
    {
      "account": "",
      "address": "$TARGET",
      "category": "send",
      "amount": -0.01000000,
      "vout": 0,
      "fee": -0.00010000,
      "size": 225
    }
  ],
  "hex": "<CUT>"
}

I am connected to the network an have peers. What did I do wrong?

Thanks in advance!

Hi,

Same problem here except that I send ZEC from a TADDR to a ZADDR. I was also wondering if it’s related to the fee.

Did your transaction finally showed up on the chain ?

Thanks

Nope, no progress except that both transactions now show “-1” confirmations now. It seems like the block just didn’t get sent for some reason

I had the same issue yesterday, from T to Z. Right after upgrading to new release. No idea if related. I’ve been re-indexing since then.

@stokastic @briceb8e

I’ve created a new post Payment from TADRR to ZADDR not on the chain and I think it’s realted to a previous issue.

I’ve also update to the new version yesterday and reindex the chain.

It seems that my transaction is stuck in the mempool an it’s not send to miners.

Could you run:
zcash-cli getrawmempool

Do you see your transaction id ?

There is a bug in 1.0.10 that causes it to fail to connect to other nodes. If you’re running that version, please downgrade to 1.0.9 for now:

If you installed Zcash using apt-get,

sudo apt-get install zcash=1.0.9

If you built from source, just follow the same instructions as for upgrading in the User Guide: Home · zcash/zcash Wiki · GitHub

Zcash 1.0.10-1 has been released. Updating to this new version or staying on 1.0.9 will resolve the problem. You may want to -reindex too. More info here: New Release: 1.0.10-1 - Electric Coin Company

2 Likes

Thanks for the updates. The downgrade (plus a -reindex for good measure) did the trick

1 Like

Hi, I’ve experienced the same problem. I have now upgraded to 1.0.10-1 and reindexed, do I need to re-broadcast the transaction? How would I best do that? (Sorry, I’m a noob). I assume re-broadcasting is safer than creating a new transaction.

Good question, I actually couldn’t find an easy way to re-broadcast the transaction (although I’m sure there’s a way). I think if your transaction is old and hasn’t made it to a block it’s probably OK to create a new transaction. What I did to be safe was created a new transaction to send all of the funds from my old sending address to a new address (from the same wallet). Then once that confirmed, I could be sure that the old transactions wouldn’t be valid, and I created a new transaction again for my original purpose.

Also, to add to that, if you create a new transaction to the same address, that should be safe, because only one of those tx’s can be valid and it won’t matter which one. If you need to send to a new address (e.g. because the old one was part of a transaction that expired), then I’d do what I said above to be safe

Thanks for the answer! One problem is that the wallet still knows about the old transaction (and shows the funds as spend e.g. on getbalance). Would I have to make the wallet “forget” about the transaction before I attempt to create a new transaction? What would be the most convenient way to do that?

Your additional point (new transaction to the same address is safe) holds true only if there will never be a high enough balance in the original address to make the original (lost) transaction valid. Correct?

So you have a copy of the raw transaction? You could use the zcash-cli command decoderawtransaction to examine it and get its txid. Then, using explorer.zcha.in, see if the txid was actually mined or not.