Skip to content
Weik.ioUniversity
Try Weik.io

Dead letters

Eventing 6 · 3:20

When delivery to a receiver keeps failing, the event becomes a dead letter that records its reader and the reason, and you can send it again. The video builds on the channel delivery of Eventing 4.

Download the mp4Recorded on 2026.2

What it covers

  • The delivery block in the channel document, with retries, retryDelays and their defaults
  • One durable reader per integration in weikio get readers
  • Retries after the receiver stops, until the event becomes a dead letter
  • The letter and its reason in weikio deadletters list and weikio deadletters show
  • Finding the letter on the Dead letters page under Events in the admin UI
  • Sending the letter again with weikio deadletters resend, or removing it with discard

Commands in this video

Terminal
$ weikio get readers sandbox/invoice-created --env devtest
$ weikio deadletters list --env devtest
$ weikio deadletters show --seq 1 --env devtest
$ weikio deadletters resend --seq 1 --env devtest -y
Transcript
  1. 0:02In video four, a type gave the channel its delivery to the receiver.
  2. 0:06This video follows one invoice the receiver cannot take, and sends it again.
  3. 0:14The source publishes an invoice every minute into invoice-files.
  4. 0:18The subscription forwards it, with its filter and its step.
  5. 0:22The channel delivers every invoice to the receiver, for now.
  6. 0:26Two integrations read this channel: the one that delivers, and the watcher.
  7. 0:35The channel is a document in its own folder.
  8. 0:38Its delivery block says what happens when a delivery fails.
  9. 0:41The retries value is three deliveries,
  10. 0:44and retryDelays puts ten seconds between them.
  11. 0:47Without the block, the defaults make ten deliveries over about 24 minutes.
  12. 0:56get readers prints one row per read. A kept channel gives each integration its own durable read,
  13. 1:03and both rows are at zero.
  14. 1:06Now the receiver stops, and its card goes grey.
  15. 1:09The next invoice fails, and the read retries the delivery.
  16. 1:13Twelve seconds later, the read shows one event retrying.
  17. 1:18The event stays in the channel for the watcher,
  18. 1:20whose own read delivered it and stayed at zero.
  19. 1:23After the last delivery,
  20. 1:25the event is a dead letter kept with its reader and its reason.
  21. 1:29The read stands at DEAD one.
  22. 1:34deadletters list reads the environment's dead letters.
  23. 1:38One letter is kept, the invoice the receiver refused on every delivery.
  24. 1:43The row carries its seq, its reader and three deliveries.
  25. 1:51deadletters show opens one letter by its seq.
  26. 1:55The print holds the reader, the deliveries, the reason and the body.
  27. 2:04The same letter stands in the admin UI, under Events.
  28. 2:09The panel reads Dead letters in devtest, with one row.
  29. 2:13The opened row carries the reason the delivery failed.
  30. 2:17The body stands above the buttons Resend and Discard.
  31. 2:26The receiver is up again.
  32. 2:28Resend sends the letter to the integration it failed in, and to no other reader.
  33. 2:33The output names the new event and the one reader it went to.
  34. 2:37The receiver's log holds the invoice again, at the resend's own time.
  35. 2:42The copy is removed once it is sent.
  36. 2:45The list prints no rows now.
  37. 2:47weikio deadletters discard removes letters you do not want sent.
  38. 2:56Each durable read retries on its own, and the arrow shows its waits.
  39. 3:01At the last delivery the event becomes a dead letter,
  40. 3:04kept with its reader and its reason.
  41. 3:07The resend sends the letter back to the one reader it failed in.