• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

safe-global / safe-events-service / 24831904352 / 1
87%
main: 87%

Build:
DEFAULT BRANCH: main
Ran 23 Apr 2026 11:11AM UTC
Files 84
Run time 2s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

23 Apr 2026 11:09AM UTC coverage: 60.733% (-0.8%) from 61.544%
24831904352.1

push

github

web-flow
feat: migrate webhook HTTP client from axios to undici with retry (#492)

Closes [PLA-1252](https://linear.app/safe-global/issue/PLA-1252/optimize-webhook-http-delivery)
Closes #116

## Summary

- Replace `@nestjs/axios` / `HttpService` with a `RetryAgent(new Agent(...))` provider injected under `UNDICI_AGENT` in `WebhookModule`
- Rewrite `postWebhook` as plain `async/await`, removing the RxJS `firstValueFrom` / `catchError` / `of` layer
- Add exponential-backoff retry on transient network errors and 5xx responses (`maxRetries: 2`, `minTimeout: 200ms`, `timeoutFactor: 2`)
- Add `X-Delivery-Id` header (stable UUID across retries) for idempotent processing on the receiver side
- Increase default `HTTP_TIMEOUT` from 1s → 5s; `connectTimeout` now also bounded by `HTTP_TIMEOUT`
- Add `HTTP_MAX_RETRIES` env var; remove `@nestjs/axios` and `axios` dependencies

## Notes

- `methods: ['POST']` is set explicitly — POST is not in undici's default retry method list, so omitting it would silently disable all retries
- Retry on 5xx implies potential duplicate delivery; use `X-Delivery-Id` to deduplicate on the receiver side
- Response body is always consumed (`body.text()`) as required by undici v8

106 of 268 branches covered (39.55%)

Branch coverage included in aggregate %.

822 of 1260 relevant lines covered (65.24%)

1.83 hits per line

Source Files on job run-test:e2e:cov - 24831904352.1
  • Tree
  • List 84
  • Changed 21
  • Source Changed 3
  • Coverage Changed 21
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Build 24831904352
  • c9532000 on github
  • Prev Job for on main (#24830421907.2)
  • Next Job for on main (#24834990532.2)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc