diff --git a/src/wallet/external_signer_scriptpubkeyman.cpp b/src/wallet/external_signer_scriptpubkeyman.cpp index 5ffc802ec1..c2b1b6048a 100644 --- a/src/wallet/external_signer_scriptpubkeyman.cpp +++ b/src/wallet/external_signer_scriptpubkeyman.cpp @@ -94,11 +94,14 @@ std::optional ExternalSignerScriptPubKeyMan::FillPSBT(PartiallySigned if (complete) return {}; auto signer{GetExternalSigner()}; - if (!signer) throw std::runtime_error(util::ErrorString(signer).original); + if (!signer) { + LogWarning("%s", util::ErrorString(signer).original); + return PSBTError::EXTERNAL_SIGNER_NOT_FOUND; + } std::string failure_reason; if(!signer->SignTransaction(psbt, failure_reason)) { - tfm::format(std::cerr, "Failed to sign: %s\n", failure_reason); + LogWarning("Failed to sign: %s\n", failure_reason); return PSBTError::EXTERNAL_SIGNER_FAILED; } if (finalize) FinalizePSBT(psbt); // This won't work in a multisig setup