Skip to content

bug(zk): MerkleWitnessUnavailable when sending to a new address with no prior transactions #3400

@lklimek

Description

@lklimek

Description

When attempting to send shielded funds to a new address that has no prior transactions, the operation fails with a ShieldedMerkleWitnessUnavailable error. The local note commitment tree cannot construct a valid Merkle witness because the frontier data is missing the expected root.

Error

ShieldedMerkleWitnessUnavailable {
    detail: "invalid frontier data: witness failed: Tree does not contain a root at address Address { level: Level(0), index: 233 }"
}

Steps to Reproduce

  1. Have a wallet with shielded balance
  2. Attempt to send shielded funds to a new address that has never received any transactions
  3. The operation fails with the above error

Expected Behavior

Sending shielded funds to any valid address should succeed regardless of whether the recipient address has prior transaction history. The Merkle witness construction should not depend on the recipient's transaction state.

Environment

  • Observed on Dash Evo Tool (testnet)
  • Using SPV mode

🤖 Co-authored by Claudius the Magnificent AI Agent

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions