Seems like these bitcoin_uri errors should be std::error::Error if std is available, as rust-bitcoin is (they're really fancy about this), and then .map_err(Box::from) would be appropriate to keep the full error information. But I recognize this is aspirational and extremely detailed. Something to note in bitcoin_uri for completeness.
Originally posted by @DanGould in payjoin/rust-payjoin#512 (comment)