Portal Community

Configuration & Network Errors

Error CodeCauseFix
CFG_MISSING_NETWORKA write/signing operation was called without a network value.Set network explicitly — it's never optional on psbt.*, wallet.deriveAddress/signMessage/verifySignature, or transaction.broadcast.
BitcoinInvalidNetworkExceptionThe network value has no matching entry under Bitcoin:Networks, or isn't one of the four recognized names.Use mainnet, testnet, signet, or regtest, and confirm it's configured in appsettings — see Networks.

Validation Errors

Error CodeCause
VAL_MISSING_ADDRESSRequired address field is empty.
VAL_MISSING_TXIDRequired txid field is empty.
VAL_MISSING_BLOCK_HASHRequired blockHash field is empty.
VAL_INVALID_HEIGHT / VAL_INVALID_START_HEIGHTA block height field was negative.
VAL_MISSING_RAW_TRANSACTION_HEXtransaction/broadcast called without rawTransactionHex.
VAL_MISSING_FROM_ADDRESSpsbt/build called without fromAddress and without an explicit utxos[] list.
VAL_MISSING_OUTPUTSpsbt/build called with an empty outputs[].
VAL_MISSING_PSBTpsbtBase64 is required on this operation and was empty.
VAL_MISSING_PSBT_LISTpsbt/combine needs at least two entries in psbtBase64List.
VAL_MISSING_EXPECTED_OUTPUTSpsbt/sign called without expectedOutputs[] — see the fund-safety rule.
VAL_MISSING_XPUBwallet/deriveAddress with walletType: readOnly needs xpub.
VAL_MISSING_MESSAGEmessage is required for wallet/signMessage or verifySignature.
VAL_MISSING_SIGNATUREsignature is required for wallet/verifySignature.

Wallet & Signing Errors

Error CodeCauseFix
WALLET_CANNOT_SIGNwalletType was readOnly (or unset) on an operation that needs to produce a signature.Set walletType to wif or mnemonic.
WALLET_CREDENTIAL_NOT_FOUNDcredentialID was missing, or the vault entry it references doesn't exist.Supply a valid credentialID pointing at a WIF or mnemonic credential.
WALLET_INVALID_KEY_MATERIALThe resolved credential is not a valid WIF-encoded key (or valid BIP-39 mnemonic) for the requested network.Confirm the credential's network matches your network setting — a mainnet WIF won't parse against testnet, and vice versa.
WALLET_MESSAGE_SIGNING_UNSUPPORTED_FOR_ADDRESS_TYPEwallet/signMessage was called with addressType: p2tr.BIP-137 has no Taproot support — use a P2WPKH wallet for message signing.

PSBT Pipeline Errors

Error CodeCauseFix
PSBT_OUTPUT_MISMATCH psbt/sign's expectedOutputs[] doesn't exactly match the PSBT's real outputs — this is the design's own highest-severity fund-safety check. Include every output from the corresponding psbt/build call, including the change output (changeAddress/changeSats) if one was generated. See PSBT Signing Pipeline.
PSBT_UTXO_NO_LONGER_AVAILABLE An input UTXO was spent by another transaction between psbt/build and psbt/finalize (a genuine race, or an expired UTXO reservation). Rebuild the PSBT from fresh UTXOs via a new psbt/build call. If this happens routinely under load, increase reservationTimeoutSeconds or back UtxoReservationHelper with a distributed lock — see Configuration.
PSBT_TAPROOT_SPIKE_PENDING psbt/buildTaprootScriptPathInput was called for the script-multisig-leaf case, which isn't implemented yet. Not fixable today — see Roadmap. Key-path Taproot (P2TR) via psbt/build/psbt/sign is unaffected.

Esplora / Network-Level Issues

SituationWhat to check
404 on an address/tx/block lookupConfirm the address/txid/blockHash is correct and exists on the selected network — a mainnet address will 404 against testnet's Esplora, and vice versa.
429 rate limitingThe node's EsploraRateLimitHandler retries automatically. If it persists, reduce call frequency or point EsploraApiUrl at a dedicated/self-hosted Esplora instance.
Unconfirmed transaction "disappears" after a whileIt was likely replaced (RBF) or evicted from the mempool for low fee. Check with transaction/getStatus and re-check the source address's mempool transactions.
Change output missing from a rebroadcastVerify you extracted from the finalized PSBT, not an intermediate build/sign-stage copy — psbt/extract only accepts a fully finalized PSBT.
Still stuck? Check Roadmap for known gaps (Taproot script-path spends, distributed UTXO locking) that may explain an edge case, or ask in community.bizfirstai.com.