Separate between fee related NoPathFound and other causes when doing lightning payments/forwards #9466
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Related to #9433 (comment). Adds a bool flag to
NoPathFound
exception that can be used to determine if the exception could be caused by a too low fee or if it has another cause when catching it. This information is then be used to send eitherOnionFailureCode.TRAMPOLINE_FEE_INSUFFICIENT
orOnionFailureCode.UNKNOWN_NEXT_PEER
when failing to forward a trampoline payment, so we don't always returnTRAMPOLINE_FEE_INSUFFICIENT
even if maybe there is no channel available at all (so raising fees would be useless).The flag could also be used client side, for example to show the user that a payment maybe failed because of a too low fee instead of just showing that it failed without reason as we use the
NoPathFound
exception too.However, maybe there is a more elegant version than a bool flag, like an additional exception (
NoPathTooLowFee
)?