Issue updating pool certificate (ValueNotConservedUTxO on pool registration updates)

Is anyone else having trouble updating their pool certificate? I want to update the pool profit margin, but the TX won’t go through. cardano-cli complains about the TX not balancing, but it appears it just wants an additional 500 ADA (as if I was registering newly).

I’ve seen this issue mentioned a few times, but the developers don’t seem to be acknowledging there’s a bug. [BUG] - ValueNotConservedUTxO on pool registration updates · Issue #2380 · input-output-hk/cardano-node · GitHub

Can anyone reproduce this? I’ve changed nothing in my workflow except upgrading my nodes.

Hi!

so what is the exact message you get?

Command failed: transaction submit  Error: Error while submitting tx: ShelleyTxValidationError ShelleyBasedEraMary (ApplyTxError [LedgerFailure (UtxowFailure (UtxoFailure (FeeTooSmallUTxO (Coin 190933) (Coin 188733)))),LedgerFailure (UtxowFailure (UtxoFailure (ValueNotConservedUTxO (Value 105000000 (fromList [])) (Value 605000000 (fromList [])))))])

Did IOHK change something about the registration process? I’ve re-registered before, and have never had this issue.

Yes, it seems that it want to make an initial register…and missing the pool deposit

but first try to fix the FeeTooSmallUTxO - so define 190933 as fee instead of 188733
What happens now?

I’ve run into the same problem on 1.26.2, although I’m trying to register the stake pool on testnet. I posted a message at [BUG] - ValueNotConservedUTxO on pool registration updates · Issue #2380 · input-output-hk/cardano-node · GitHub. Here’s what I posted:

I just recently started building and registering nodes on 1.26.2 (just testnet right now) and getting the same ValueNotConservedUTxO error when I try to submit the pool and delegation certificates to the testnet blockchain. I’ve been following the guide at 8. Registering a Stake Pool with Metadata — cardano-node Documentation 1.0.0 documentation. Maybe it’s a bug, maybe it’s my error. Although if ThrDragon hasn’t changed the workflow, maybe it’s not human error. I’ve run the sequence of scripts three times, including the calculation of change, and I’m sure I have the right amounts. The draft script

cardano-cli transaction build-raw
–tx-in 15…#0
–tx-out $(cat payment.addr)+0
–invalid-hereafter 0
–fee 0
–out-file tx.draft
–certificate-file pool-registration.cert
–certificate-file delegation.cert

Calculating the fee
cardano-cli transaction calculate-min-fee
–tx-body-file tx.draft
–tx-in-count 1
–tx-out-count 1
–witness-count 3
–byron-witness-count 0
–testnet-magic 1097911063
–protocol-params-file protocol.json

which resulted in a fee of 196125 Lovelace
Calculating change back based on the 1000 ADA from balance and the 500 ada deposit to register, and the fee, the change back is 499803875 lovelace.

Script to build actual transaction
cardano-cli transaction build-raw
–tx-in 15…#0
–tx-out $(cat payment.addr)+499803875
–invalid-hereafter 25384566
–fee 196125
–out-file tx.raw

then signed the transaction

cardano-cli transaction sign
–tx-body-file tx.raw
–signing-key-file payment.skey
–signing-key-file stake.skey
–signing-key-file cold.skey
–testnet-magic 1097911063
–out-file tx.signed

then submitted

cardano-cli transaction submit
–tx-file tx.signed
–testnet-magic 1097911063

And I get this
Command failed: transaction submit Error: Error while submitting tx: ShelleyTxValidationError ShelleyBasedEraMary (ApplyTxError [LedgerFailure (UtxowFailure (UtxoFailure (ValueNotConservedUTxO (Value 1000000000 (fromList )) (Value 500000000 (fromList )))))])

A couple of days ago, also on 1.26.2, I was able to successfully return ADA to the testnet faucet, so that transaction worked.

Hi!

give it a try without deposit:

Thanks, @laplasz that did the trick. It is weird. Is this considered a bug and this is the workaround?

or you already registered the pool…:slight_smile:
next time I will ask to first check the pool registration on the ledger:

cardano-cli stake-pool id --cold-verification-key-file cold.vkey --output-format "hex"
cardano-cli query ledger-state --mainnet > ledger-state.json
grep publicKey ledger-state.json | grep <poolId>

Interesting. Pool id not out there. That was about 2 hours ago that I submitted the tx

what is the pool id?

5819607b351ce6cf7a4087ccfa0b1863aa5fc3c125d7174b10a40101

yes, it is not shown… that is interesting can you de-register the pool and register it again?
https://docs.cardano.org/projects/cardano-node/en/latest/stake-pool-operations/retire_stakepool.html

Looks like I never registered. I’ll repeat the registration steps in the tutorial and see what happens

xxxxxx:~/src/cardano-node$ ./submit_trans.sh
Command failed: transaction submit Error: Error while submitting tx: ShelleyTxValidationError ShelleyBasedEraMary (ApplyTxError [LedgerFailure (DelegsFailure (DelplFailure (PoolFailure (StakePoolNotRegisteredOnKeyPOOL

1 Like

To address the “low cost” error I was getting, I revised the pool registration cert script as follows

cardano-cli stake-pool registration-certificate
–cold-verification-key-file cold.vkey
–vrf-verification-key-file vrf.vkey
–pool-pledge 490000000
–pool-cost 340000000
–pool-margin 0.01
–pool-reward-account-verification-key-file stake.vkey
–pool-owner-stake-verification-key-file stake.vkey
–testnet-magic 1097911063
–pool-relay-ipv4 xxxxxxx
–pool-relay-port 8001
–metadata-url https://git.io/J3YRJ
–metadata-hash 4cd*************
–out-file pool-registration.cert

Now I’m back to the ValueNotConservedUTxO error, both when I include the deposit and not include the deposit when calculating change back.

without the deposit subtracted from change
Command failed: transaction submit Error: Error while submitting tx: ShelleyTxValidationError ShelleyBasedEraMary (ApplyTxError [LedgerFailure (UtxowFailure (UtxoFailure (ValueNotConservedUTxO (Value 1000000000 (fromList )) (Value 1499999956 (fromList )))))])

with the deposit subtracted

Command failed: transaction submit Error: Error while submitting tx: ShelleyTxValidationError ShelleyBasedEraMary (ApplyTxError [LedgerFailure (UtxowFailure (UtxoFailure (ValueNotConservedUTxO (Value 1000000000 (fromList )) (Value 999999956 (fromList )))))])

ok - i need the details now - so what was the transaction build command? just to see values

I finally got it to work I forgot to update the fee in the build command after having run the script for a different pool cost. I included the 500 ada deposit in calculating the change, and ran this

cardano-cli transaction build-raw
–tx-in 15**********#0
–tx-out $(cat payment.addr)+499803831 \ <<<<<<<<<<<< calculation included deposit
–invalid-hereafter 25468109
–fee 196169 \ <<<<<<<<<<<<< this is what I had wrong, corrected it to 196169
–out-file tx.raw
–certificate-file pool-registration.cert
–certificate-file delegation.cert

It got interesting after that. I decided to play around with calculating the change without the deposit. Started getting the ValueNotConservedUTxO error again. Got the error again after redoing it with the deposit put back in the calulation. Still got ValueNotConservedUTxO. I think what it is I should’ve just left it alone after the success. Pool id is out there

cardano-cli query ledger-state --testnet-magic 1097911063 | grep publicKey | grep 5819607b351ce6cf7a4087ccfa0b1863aa5fc3c125d7174b10a40101
“publicKey”: “5819607b351ce6cf7a4087ccfa0b1863aa5fc3c125d7174b10a40101”,

So all’s good.

1 Like

Yeah my pool shows up fine in

cardano-cli stake-pool id --cold-verification-key-file cold.vkey --output-format "hex"
cardano-cli query ledger-state --mainnet > ledger-state.json
grep publicKey ledger-state.json | grep d5342a3aa3414e9b730212cd065a009443f3fc4cddc78cd5879bfd70
1 Like