Skip to content

🐛 fix(webhooks): retry storage faults - #1862

Merged
gaborbernat merged 2 commits into
mainfrom
fix/webhook-backoff-1186
Aug 30, 2026
Merged

gaborbernat merged 2 commits into
mainfrom
fix/webhook-backoff-1186

Conversation

@gaborbernat

Copy link
Copy Markdown
Member

A transient metadata read stops webhook delivery and the serving process. A failed status write can also resend an accepted request before peryx records the prior attempt.

The worker now backs off metadata faults while allowing notifications and shutdown to interrupt the wait. It retains failed status writes in memory, suppresses that target until persistence succeeds, and keeps other targets moving. Process loss can still cause at-least-once redelivery with the same X-Peryx-Delivery value.

Closes #1186

Keep the delivery worker alive when metadata operations fail and use a
bounded, interruptible backoff before retrying.

Retain failed delivery-status writes in memory so the worker records the
exact attempt before resending an accepted request. Keep other targets moving
while suppressing the affected target.

Refs #1186
@gaborbernat gaborbernat added the bug Something isn't working label Aug 30, 2026
@gaborbernat gaborbernat self-assigned this Aug 30, 2026
@read-the-docs-community

read-the-docs-community Bot commented Aug 30, 2026 •

Copy link
Copy Markdown

Documentation build overview

📚 peryx | 🛠️ Build #34295332 | 📁 Comparing c9ba05d against latest (60698d6)

  🔍 Preview build  

1 file changed
± core/operations/webhooks/index.html

@codspeed

codspeed Bot commented Aug 30, 2026 •

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 23 untouched benchmarks
⏩ 139 skipped benchmarks1


Comparing fix/webhook-backoff-1186 (c9ba05d) with main (60698d6)

Open in CodSpeed

Footnotes

  1. 139 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩

The full-workspace report combines benchmark and test builds. The tracing macro
deferred the retry delay until a subscriber enabled the event, so LLVM associated
that field with the benchmark build's zero-count region.

Compute the delay before dispatch. Remove the optional error branch because the
sole caller has an error.
@gaborbernat
gaborbernat merged commit 57915f8 into main Aug 30, 2026
32 checks passed
@gaborbernat
gaborbernat deleted the fix/webhook-backoff-1186 branch August 30, 2026 03:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Back off webhook delivery after metadata faults

1 participant