Skip to content

fix(rest/nodejs): retry transient webhook failures - #175

Merged
carolinerg1 merged 1 commit into
Universal-Commerce-Protocol:mainfrom
FanouZeng-TT:fix/retry-node-webhooks
Aug 12, 2026
Merged

fix(rest/nodejs): retry transient webhook failures#175
carolinerg1 merged 1 commit into
Universal-Commerce-Protocol:mainfrom
FanouZeng-TT:fix/retry-node-webhooks

Conversation

@FanouZeng-TT

Copy link
Copy Markdown
Contributor

Description

notifyWebhook treated every resolved fetch call as a successful delivery, so a 5xx response was silently dropped. Transport failures were logged once without retrying, even though the same event could be delivered safely with its original identity.

Fix: retry transport errors and 5xx responses up to three times with exponential backoff. Permanent 4xx responses are not retried, and all attempts reuse the same Webhook-Id, Webhook-Timestamp, and serialized body.

Category (Required)

  • Core Protocol
  • Governance/Contributing
  • Capability
  • Documentation
  • Infrastructure
  • Maintenance
  • SDK
  • Samples / Conformance
  • UCP Schema
  • Community Health (.github)

Related Issues

N/A

Checklist

  • I have followed the Contributing Guide and Code of Conduct.
  • I have updated the documentation (if applicable).
  • My changes pass all local linting and formatting checks.
  • I have added tests that prove the fix is effective.
  • New and existing unit tests pass locally with my changes.
  • I have included/updated the relevant JSON schemas (Core/Capability only).
  • I have regenerated Python Pydantic models (not applicable).

Screenshots / Logs (if applicable)

  • npm test: 123 passed
  • npm run build: passed
  • pre-commit run --all-files: passed

@damaz91 damaz91 added status:needs-triage Signal that the PR is ready for human triage status:under-review labels Aug 12, 2026
@damaz91 damaz91 removed the status:needs-triage Signal that the PR is ready for human triage label Aug 12, 2026
@carolinerg1
carolinerg1 merged commit 04f222e into Universal-Commerce-Protocol:main Aug 12, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants