The empty util::Error()
is used to retrieve a “no solution found for the provided inputs set”. If you specify an error message, then the wallet coin selection procedure treats it as a real error and bubble it up when no other selection algorithm succeeded.
The goal of this distinction is to differentiate between errors that should be bubbled up and coin selection algorithms’ partial solutions. Remember that we are running each coin selection algorithm up to 7 times, extending the input set on every round. The “no solution found” return isn’t definitive; it varies depending on the algorithm and the filtered coin set. That’s why other errors, like the max weight exceeded, are stored and take precedence if no solution is found after running all selection rounds.
I haven’t gone deeper over this PR yet but the message you are adding here doesn’t seems like an error. It is just describing the “no solution found for the provided input set” transient situation.