Skip to content

Unable to send_probe to eclair due to lack of payment secret #2525

@AnthonyRonning

Description

@AnthonyRonning

Because of this issue, eclair requires payment secret when sending probes: ACINQ/eclair#1810 (comment)

Right now I'm getting:

INFO  [lightning::ln::onion_utils:579] Onion Error[from 03864ef025fde8fb587d989186ce6a4a186895ee44a926bfc370e2c366597a3f8f: invalid_onion_payload(0x4016)] Node indicated that the decrypted onion per-hop payload was not understood by it or is incomplete

And I think it's because when sending probes, it uses sponaneous_empty which does not send payment secret.

match self.pay_route_internal(&route, payment_hash, RecipientOnionFields::spontaneous_empty(),
None, payment_id, None, onion_session_privs, node_signer, best_block_height, &send_payment_along_path
) {
Ok(()) => Ok((payment_hash, payment_id)),
Err(e) => {
self.remove_outbound_if_all_failed(payment_id, &e);
Err(e)
}
}
}

pub fn spontaneous_empty() -> Self {
Self { payment_secret: None, payment_metadata: None, custom_tlvs: Vec::new() }
}

Would always sending payment secret be the right approach? Don't all nodes support it at this point? Or would allowing send_probe to pass through RecipientOnionFields be a work around and I can hardcode their node pubkey for it.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions