@@ -216,8 +216,21 @@ See [Pagination](#pagination) below for how to page through results.
216216| ` SpliceNegotiated ` | A channel splice was negotiated and the funding transaction is pending confirmation |
217217| ` SpliceNegotiationFailed ` | A channel splice negotiation round failed |
218218
219- Events are broadcast to all connected subscribers. The server uses a bounded broadcast channel
220- (capacity 1024). A slow subscriber that falls behind will miss events.
219+ > [ !WARNING]
220+ > ` SubscribeEvents ` is a best-effort stream of new events. Events are not persisted for
221+ > subscribers, cannot be replayed after reconnecting, and have no client acknowledgement.
222+ > Acceptance by the server's broadcast channel does not guarantee that a client received or
223+ > processed an event.
224+
225+ Events are broadcast to all currently connected subscribers. The server uses a bounded broadcast
226+ channel (capacity 1024), so a slow subscriber that falls behind will miss events. Disconnected
227+ clients also miss events and receive only new events after reconnecting. If the server cannot read
228+ data required to construct a payment event, it logs the error and skips that event so the event
229+ queue can continue processing.
230+
231+ Use events as notifications. After reconnecting, reconcile recoverable state with APIs such as
232+ ` GetPaymentDetails ` , ` ListPayments ` , ` ListForwardedPayments ` , and ` ListChannels ` . Some event fields
233+ cannot be recovered through these APIs.
221234
222235### Metrics
223236
@@ -236,7 +249,9 @@ Subscribe with `SubscribeEvents` before you send a BOLT 12 payment. Events are n
236249
237250When ` PaymentSuccessful ` arrives, retain its ` payment_id ` , ` payment_preimage ` , and
238251` bolt12_invoice ` . Pass these values to ` Bolt12CreatePayerProof ` . The request can also select the
239- optional invoice fields that the proof discloses.
252+ optional invoice fields that the proof discloses. Payment history APIs cannot recover all the
253+ inputs required to create a proof if this event is missed. Save these values before processing
254+ other events.
240255
241256The ` bolt12_invoice ` field is absent for static-invoice payments. These asynchronous payments
242257cannot produce payer proofs.
@@ -263,9 +278,11 @@ stored payment amount, less any skimmed fee. It is not an exact amount check or
263278that many millisatoshis. A larger supplied amount passes this check; omitting it skips the check.
264279Always validate the event's amount before you claim the payment.
265280
266- The payment is held in a pending state until you explicitly claim or fail it. ** You must
267- always handle each event.** If you do not, the HTLC will eventually time out. This can cause a
268- force-closure of the channel.
281+ The payment is held in a pending state until you claim it, fail it, or its ` claim_deadline ` is
282+ reached. ` PaymentClaimable ` notifications are best-effort and are not replayed. If you miss the
283+ event or do not act before the deadline, LDK Node automatically fails the HTLC backward and the
284+ payment can no longer be claimed. Keep the subscriber healthy and resolve reported persistence
285+ errors before accepting further payments.
269286
270287## Pagination
271288
0 commit comments