diff --git a/lightning/src/blinded_path/payment.rs b/lightning/src/blinded_path/payment.rs index d28066ec413..0ed09a366d8 100644 --- a/lightning/src/blinded_path/payment.rs +++ b/lightning/src/blinded_path/payment.rs @@ -169,7 +169,7 @@ impl Readable for BlindedPaymentTlvs { short_channel_id, payment_relay: payment_relay.ok_or(DecodeError::InvalidValue)?, payment_constraints: payment_constraints.0.unwrap(), - features: features.ok_or(DecodeError::InvalidValue)?, + features: features.unwrap_or_else(BlindedHopFeatures::empty), })) } else { if payment_relay.is_some() || features.is_some() { return Err(DecodeError::InvalidValue) } diff --git a/pending_changelog/blinded-hop-features-optional.txt b/pending_changelog/blinded-hop-features-optional.txt new file mode 100644 index 00000000000..f8967f127a3 --- /dev/null +++ b/pending_changelog/blinded-hop-features-optional.txt @@ -0,0 +1,5 @@ +## Bug Fixes + +* LDK previously would fail to forward an intermediate blinded payment + if the blinded hop features were absent, potentially breaking + interoperability.