LND attributes every failed HTLC attempt to a specific position in the route via the failure_source_index field. Since intermediate failures come back to you as encrypted error onions that only the sender can decode, LND decodes them and records exactly which node reported the error on each attempt.
LND attributes every failed HTLC attempt to a specific position in the route via the
failure_source_indexfield. Since intermediate failures come back to you as encrypted error onions that only the sender can decode, LND decodes them and records exactly which node reported the error on each attempt.Live:
lncli trackpayment <payment_hash>(RouterRPCTrackPaymentV2) streams every HTLC attempt. Failed ones look like:"htlcs": [{ "status": "FAILED", "route": { "hops": [ {"pub_key": "02aa...", "chan_id": "..."}, ... ] }, "failure": { "code": "TEMPORARY_CHANNEL_FAILURE", "failure_source_index": 2 } }]