What svix/svix-webhooks shipped
Written by FoxPlug from the repository's own releases; not affiliated with Svix. Paste your own repository in the box below and FoxPlug writes the same weekly update for your product. This page is an automatic summary of the releases, pull requests and commits in github.com/svix/svix-webhooks; Svix did not write it and does not use or endorse FoxPlug. Every line links to the change it describes.
Get a weekly update like this for your product, free
Week of November 2, 2026
What shipped
- The JavaScript client now cancels discarded retry response bodies before backing off, so retried 5xx responses no longer leave unread bodies streaming and holding connections. Pull request #2776
- The server worker now reads at most RESPONSE_MAX_SIZE (20000 bytes) of each endpoint response instead of buffering the full response in memory and truncating it afterwards. Pull request #2775
- Ruby webhook verification now raises WebhookVerificationError for svix-signature entries without a value, such as v1, instead of NoMethodError. Pull request #2773
- The bridge now uses QuickJs as its default engine instead of Deno. Pull request #2784
- The JavaScript package overrides basic-ftp to fix an npm audit finding, which can be removed once get-uri allows a patched basic-ftp. Pull request #2788
- The bridge Cargo.lock was updated to fix two RUSTSEC advisories. Pull request #2787
- The OpenAPI compatibility validation script now handles the new nullability format where type lists include null instead of nullable being set to true. Pull request #2778
- The OpenAPI spec was updated and the SDKs regenerated. Pull request #2785
- The OpenAPI spec was updated and the SDKs regenerated. Pull request #2782
- The client libraries were regenerated with many staged changes, including a rename of the GenericConfig type. Pull request #2777
Why it matters
This week brought fixes that affect how clients and the server behave under load: retry response bodies are released, worker memory use is capped per response, and Ruby verification reports the right error. Dependency and lockfile updates also close audit and advisory findings in the JavaScript and bridge packages. The bridge default engine changed to QuickJs, and the spec and client libraries were regenerated.
Changelog entry
- Javascript: cancel discarded retry response bodies before backing off during retries Pull request #2776
- Server: worker reads at most RESPONSE_MAX_SIZE of the endpoint response instead of buffering the whole response Pull request #2775
- Ruby: raise WebhookVerificationError for signatures without a value Pull request #2773
- Bridge: change default engine from Deno to QuickJs Pull request #2784
- Javascript: override basic-ftp to fix npm audit Pull request #2788
- Bridge: update Cargo.lock to fix two RUSTSEC advisories Pull request #2787
- Ci: handle type-list nullability in the OpenAPI compatibility validation script Pull request #2778
- Update OpenAPI spec and regenerate SDKs Pull request #2785
- Update OpenAPI spec and regenerate SDKs Pull request #2782
- Libs: regenerate client libraries Pull request #2777
- Tests: fix javascript client library user-agent test on alpha Node.js versions Pull request #2779
This week: JavaScript client cancels discarded retry response bodies, server worker caps endpoint response reads at 20000 bytes, and Ruby verification raises WebhookVerificationError for signature entries without a value. Also: QuickJs is now the bridge default engine, fixes for
This week in the repository: the JavaScript client now cancels discarded retry response bodies before backing off, so unread bodies no longer hold connections during retries. The server worker reads at most RESPONSE_MAX_SIZE (20000 bytes) of an endpoint response instead of buffering the full response in memory. Ruby verification now raises WebhookVerificationError for svix-signature entries without a value rather than NoMethodError. The bridge default engine changed from Deno to QuickJs, Cargo.lock was updated to fix two RUSTSEC advisories, and the JavaScript package overrides basic-ftp to fix an npm audit finding. The OpenAPI spec and client libraries were regenerated, and the compatibility validation script handles the new nullability format.
Week of October 26, 2026
What shipped
- Svix Server OSS v1.104.0 shipped, rejecting event type schemas that use external $refs, adding an expiry field to EndpointOut that is currently always null, and raising the MSRV to 1.95.0. Release
- Event type schema compilation no longer resolves external http or file $refs, so schemas can no longer cause the server to fetch remote URLs or read local files. Pull request #2759
- PHP Webhook::fromRaw now works again instead of throwing ArgumentCountError on every call, with the constructor taking the raw secret. Pull request #2768
- PHP webhook secrets that are empty or not valid base64 are now rejected instead of becoming an empty HMAC key that accepted forged signatures. Pull request #2765
- The Java and Kotlin libraries retry on 423 responses in addition to 500 and above, allow retrySchedule in SvixOptions, and use Thread.sleep in Java and a suspending request in Kotlin. Pull request #2767
- The bridge Redis queue plugin now exposes
dlq_config, with a queue key and max receives count, so messages can move to a dead letter queue. Pull request #2705 - The bridge SQS queue plugin now exposes
max_payload_size, so oversized sends fail locally with PayloadTooLarge instead of reaching SQS. Pull request #2700 - SDKs and CLI v2.9.1 shipped, with the JavaScript library throwing ApiException instead of SyntaxError when a 4xx body is not JSON, and the CLI Docker image rebuilt for a CVE. Release
- Svix Bridge v1.101.1 shipped with
dlq_configfor the Redis queue plugin and a rebuilt Docker image for a CVE. Release - The bridge Docker image moved from Debian to wolfi, cutting open CVEs from 157 to 0 and image size from 205MB to 127MB. Pull request #2752
Why it matters
This week tightened several things people depend on: event type schemas can no longer trigger external fetches, and PHP webhook verification no longer accepts malformed or empty secrets. It also filled gaps in the bridge queue plugins with dead letter queue config for Redis and a payload size limit for SQS, plus retry and error handling fixes across the Java, Kotlin, and JavaScript libraries. Two OSS releases landed, the server at 1.104.0 and the bridge at 1.101.1.
Changelog entry
- Release Svix Server OSS v1.104.0: external $refs in event type schemas rejected with a 422, expiry added to EndpointOut, MSRV raised to 1.95.0. Release
- Stop event type schemas from resolving external http and file $refs during compilation. Pull request #2759
- Add expiry to EndpointOut for Svix Cloud API compatibility, always null for now. Pull request #2753
- Fix PHP Webhook::fromRaw throwing ArgumentCountError by accepting the raw secret in the constructor. Pull request #2768
- Reject empty or non-base64 webhook secrets in the PHP library. Pull request #2765
- Java and Kotlin libraries retry on 423, allow retrySchedule in SvixOptions, and fix request handling per language. Pull request #2767
- Bridge Redis queue plugin exposes
dlq_configwith queue key and max receives. Pull request #2705 - Bridge SQS queue plugin exposes
max_payload_size. Pull request #2700 - Release SDKs and CLI v2.9.1: JavaScript throws ApiException for non-JSON 4xx bodies, CLI image rebuilt for a CVE. Release
- Release Svix Bridge v1.101.1 with
dlq_configfor Redis and a rebuilt Docker image. Release - Bridge Docker image switched from Debian to wolfi, reducing open CVEs and image size. Pull request #2752
- Upgrade jwt-simple and chacha20poly1305 to remove a vulnerable crypto-bigint from the server dependency tree. Pull request #2747
Svix Server OSS 1.104.0 is out: event type schemas with external $refs are now rejected, and EndpointOut has an expiry field. Bridge 1.101.1 adds dlq_config to the Redis plugin. PHP webhooks fix fromRaw and reject empty or non-base64 secrets.
This week brought two OSS releases and a set of fixes across the SDKs and bridge. Svix Server OSS 1.104.0 rejects event type schemas that reference external http or file $refs, adds an expiry field to EndpointOut, and raises the MSRV to 1.95.0. Svix Bridge 1.101.1 adds dlq_config to the Redis queue plugin, and the bridge SQS plugin now exposes max_payload_size. The PHP library fixes Webhook::fromRaw and rejects empty or non-base64 secrets, while the Java and Kotlin libraries retry on 423 responses and allow a configurable retry schedule. SDKs and CLI v2.9.1 makes the JavaScript client throw ApiException instead of SyntaxError on a non-JSON 4xx body.
Week of October 19, 2026
What shipped
- Svix Server OSS v1.102.0 returns the new secret from v1.endpoint.rotate-secret and adds an optional
opentelemetry_logs_enabledsetting to send log events to the configured OpenTelemetry collector alongside stdout, disabled by default. Release - Svix Bridge v1.101.0 adds an rquickjs backend for transformations alongside the Deno backend, selectable with the
js_enginesetting; it is faster for most programs but lacks some node.js APIs Deno supports, and Deno will be removed in a future version. Release - Most SDKs previously retried only on 5xx responses, so timeouts, refused connections and DNS failures failed immediately; the SDKs now retry on timeouts and network errors, with other small fixes. Pull request #2736
- The Python library now retries on HTTP 423 and on I/O errors, with added test coverage for the HTTP client. Pull request #2735
- The Java and Kotlin libraries now strip trailing slashes from server URLs, matching the earlier normalization in other libraries. Pull request #2729
- SDKs and CLI v2.9.0 is released, including the trailing slash fix for Java and Kotlin, Python retries on HTTP 423 and I/O errors, and an update to the latest Svix Cloud API with ElasticSearch support for Advanced Destinations. Release
- Svix Server OSS v1.102.1 removes the compromised eMudhra CA certificates from the TLS trust store. Release
- The Dockerfiles now remove the compromised eMudhra and emSign root certificates from the trust store. Pull request #2721
- Svix-cli moves to newer tokio and related dependencies, addressing RUSTSEC-2026-0386. Pull request #2739
- The server switches to a fork of sqlx that bumps webpki-roots, as an alternative fix for RUSTSEC-2026-0381. Pull request #2726
Why it matters
This week brings SDK and CLI v2.9.0, a server patch release that removes compromised CA certificates from the trust store, and a bridge release that adds a new transformation backend. Retries on timeouts and network errors across the SDKs, plus the Java and Kotlin server URL fix, change how client requests behave.
Changelog entry
- SDKs + CLI v2.9.0: strip trailing slashes from server URLs in Java and Kotlin; retry on HTTP 423 and I/O errors in Python; update to the latest Svix Cloud API with ElasticSearch support for Advanced Destinations. Release
- Libraries bumped to v2.9.0. Pull request #2738
- Svix Server OSS v1.102.0: v1.endpoint.rotate-secret returns the new secret; add
opentelemetry_logs_enabledto optionally send log events to the configured OpenTelemetry collector, disabled by default. Release - Svix Server OSS v1.102.1: remove compromised eMudhra CA certificates from the TLS trust store. Release
- Svix Bridge v1.101.0: add an rquickjs backend for transformations alongside Deno, selectable by
js_engine. Release - Libraries: retry on timeouts and network errors. Pull request #2736
- Python: retry on HTTP 423 and on I/O errors; add HTTP client test coverage. Pull request #2735
- Python: fix an off-by-one error in the svix-retry-count header and add tests. Pull request #2737
- Java and Kotlin: strip trailing slashes from server URLs. Pull request #2729
- Docker: remove compromised eMudhra and emSign root certificates from the trust store. Pull request #2721
- Add more log levels. Pull request #2730
- Svix-cli: upgrade tokio and related dependencies. Pull request #2739
SDKs + CLI v2.9.0 is out: SDKs now retry on timeouts and network errors, Python retries on HTTP 423 and I/O errors, and Java/Kotlin strip trailing slashes from server URLs. Server OSS v1.102.1 drops compromised eMudhra CA certs from the TLS trust store. Bridge v1.101.0 adds an rq
This week we shipped SDKs + CLI v2.9.0. Most SDKs previously retried only on 5xx responses, so timeouts, refused connections and DNS failures failed immediately; they now retry on timeouts and network errors. The Python library also retries on HTTP 423 and I/O errors, and the Java and Kotlin libraries strip trailing slashes from server URLs. Svix Server OSS v1.102.1 removes the compromised eMudhra CA certificates from the TLS trust store, and the Dockerfiles were updated to match. Svix Bridge v1.101.0 adds an rquickjs backend for transformations alongside Deno; it is opt-in via js_engine and faster for most programs, though it does not include some of the node.js APIs Deno supports. Deno will be removed in a future version, so please test your applications against the new backend.
Week of October 12, 2026
What shipped
- The RabbitMQ queue plugin for the bridge now accepts a consume prefetch count setting instead of always leaving it unset. Pull request #2698
- The C# library now serializes System.Text.Json values in request bodies as their JSON, so a JsonElement payload is sent correctly instead of as a placeholder object. Pull request #2696
- The server no longer allows sending to the name backend by default. Pull request #2710
- Rustls was bumped in the server, bridge and CLI to address reported security advisories. Pull request #2706
- The pull request template was changed to discourage very long auto-generated descriptions. Pull request #2715
Why it matters
This week fixed a C# payload serialization bug that could send wrong data and a RabbitMQ prefetch setting that was ignored in the bridge, both of which affect how messages get delivered. It also removed a default allowlist entry on the server and updated rustls across three components for security advisories.
Changelog entry
- Bridge: add consume prefetch count to the RabbitMQ queue plugin. Pull request #2698
- Csharp: serialize System.Text.Json values in request bodies as their JSON. Pull request #2696
- Server: remove the default allowlist entry for the name backend. Pull request #2710
- Deps: bump rustls in server, bridge and CLI for security advisories. Pull request #2706
- Update the pull request template. Pull request #2715
This week: the C# library now sends System.Text.Json payloads as real JSON, the bridge's RabbitMQ plugin accepts consume prefetch count, the server drops the default backend allowlist entry, and rustls was bumped in server, bridge and CLI for security advisories.
This week's changes: the C# library now serializes System.Text.Json values in request bodies as their JSON, fixing payloads that previously went out as a placeholder object. The bridge's RabbitMQ queue plugin now accepts a consume prefetch count setting instead of ignoring it. The server no longer allows sending to the name backend by default, and rustls was bumped in the server, bridge and CLI to address security advisories.
Week of October 5, 2026
What shipped
- SDKs and CLI v2.8.0 shipped with CLI support for loading a request body from a file, cancellation-honoring retry waits in the C# library, and Ruby library changes. Release
- The CLI can now load a request body from a named file using cURL-style @filename syntax. Pull request #2685
- The C# library now waits between retries with Task.Delay so cancellation is honored instead of blocking the thread. Pull request #2689
- The JavaScript library now honors numRetries: 0 instead of falling back to the default and retrying. Pull request #2675
- The Go Application.GetOrCreate method uses the same method receiver style as other methods and has a corrected nil check. Pull request #2691
- The Ruby library now uses the bytes passed to Webhook.new_using_raw_bytes as the raw signing key instead of base64 encoding them. Pull request #2661
- The C# library now applies the configured TimeoutMilliseconds setting to the default transport for sync and async requests. Pull request #2679
- The Go module path now includes the v2 suffix so v2 releases are listed properly. Pull request #2681
- SDKs and CLI v2.7.0 shipped with rotate-secret methods returning the new secret and a C# TimeoutMilliseconds fix. Release
- SDKs and CLI v2.6.2 shipped with a Java and Kotlin fix for bodyless POST and PUT calls and a Go module path fix. Release
Why it matters
This week brought three SDK and CLI releases plus fixes across the JavaScript, C#, Ruby and Go libraries. Users get CLI file input, cancellation-aware retries in C#, correct retry counts, respected timeouts, a corrected Ruby signing key behavior and a Go module path that makes v2 releases appear properly.
Changelog entry
- SDKs and CLI v2.8.0 released. Release
- CLI can load a request body from a named file using @filename syntax. Pull request #2685
- C# library uses Task.Delay between retries so cancellation is honored. Pull request #2689
- JavaScript library honors numRetries: 0 instead of using the default. Pull request #2675
- Go Application.GetOrCreate fixed to use the standard method receiver style and corrected nil check. Pull request #2691
- Ruby library uses bytes passed to Webhook.new_using_raw_bytes as the raw signing key. Pull request #2661
- C# library applies the configured TimeoutMilliseconds to the default transport. Pull request #2679
- Go module path updated to include the v2 suffix. Pull request #2681
- SDKs and CLI v2.7.0 released. Release
- SDKs and CLI v2.6.2 released. Release
- CI generates MSRV-compatible lockfiles. Pull request #2683
- Codegen updated to the latest openapi.json. Pull request #2693
SDKs + CLI v2.8.0 is out. CLI can load a request body from a file with @filename. C# retries now honor cancellation. Also in this week: JavaScript numRetries: 0, Go Application.GetOrCreate, Ruby raw signing keys and the Go v2 module path.
SDKs + CLI v2.8.0 is out. The CLI can now populate a request body from a file with cURL-style @filename syntax. The C# library waits between retries with Task.Delay so cancellation is honored. Also this week: the JavaScript library honors numRetries: 0, C# respects TimeoutMilliseconds, Go Application.GetOrCreate is fixed along with the v2 module path, and the Ruby library uses bytes passed to Webhook.new_using_raw_bytes as the raw signing key. Earlier releases this week included v2.7.0, which returns the new secret from rotate-secret methods, and v2.6.2, which fixed bodyless POST and PUT calls in Java and Kotlin.
Week of September 28, 2026
What shipped
- Released SDKs + CLI v2.6.0 with PHP support for destination and stream APIs, AutoConfigConsumer for PHP, Python 3.9 end-of-life support dropped, and Rust AutoConfigConsumer breaking change reverted. Release
- Fixed Java and Kotlin SDKs to send empty bodies for POST, PUT and PATCH operations without request bodies instead of throwing IllegalArgumentException. Pull request #2678
- Fixed Ruby and PHP clients to strip trailing slashes from server URLs to prevent double-slash paths in API requests. Pull request #2663
- Released SDKs + CLI v2.6.1 with updated Svix Cloud spec. Release
- Updated Docker image with latest Debian version and applied security patches to fix CVEs. Pull request #2676
- Bumped openapi-codegen to latest version in preparation for cloud endpoint with optional typed body support. Pull request #2667
- Updated OpenAPI spec and regenerated SDK libraries. Pull request #2671
- Removed unused field from
api_extra.ronconfiguration. Pull request #2672
Why it matters
V2.6.0 and v2.6.1 releases bring expanded language support and fix critical SDK issues across multiple platforms. Bug fixes for Java, Kotlin, Ruby, and PHP prevent runtime errors and incorrect API requests that users could encounter in production.
Changelog entry
- SDKs + CLI v2.6.0: PHP destination and stream APIs, PHP AutoConfigConsumer, Python 3.9 EOL, Rust AutoConfigConsumer fix Release
- SDKs + CLI v2.6.1: Update to latest Svix Cloud spec Release
- Java and Kotlin: Fixed empty body handling for POST, PUT, PATCH operations Pull request #2678
- Ruby and PHP: Strip trailing slashes from server URLs Pull request #2663
- Rust: Reverted AutoConfigConsumer breaking change, restored &self methods with RwLock Pull request #2664
- SDK: Bumped openapi-codegen for cloud endpoint support Pull request #2667
- Updated OpenAPI spec and regenerated libraries Pull request #2671
- Docker: Updated Debian image and applied security patches Pull request #2676
Svix SDKs v2.6.0 and v2.6.1 shipped. PHP gets destination/stream APIs, Java/Kotlin fix empty body handling, Ruby/PHP fix URL formatting. Python 3.9 support dropped.
This week's Svix SDK releases (v2.6.0 and v2.6.1) address critical issues across multiple languages. Java and Kotlin SDKs now correctly handle POST/PUT/PATCH operations without request bodies. Ruby and PHP clients properly format server URLs. PHP SDK gains destination and stream API support. Python 3.9 support has reached end-of-life.
Week of September 14, 2026
What shipped
- PHP client library now supports struct enums, enabling type-safe API usage patterns like StreamSinkIn::create(StreamSinkInConfig::poller()). Pull request #2640
- PHP AutoConfigConsumer feature added, bringing PHP support to parity with other client libraries for destination configuration. Pull request #2649
- Server now sends log events to OpenTelemetry collectors, extending observability beyond traces and metrics to include application logs. Pull request #2521
- OpenAPI specification updated with corresponding changes to library code generation. Pull request #2646
- Security update: rustls dependency bumped to address RUSTSEC-2026-0285. Pull request #2645
- Client libraries regenerated for new endpoint stats API. Pull request #2654
- SDKs regenerated to resolve a silent merge conflict. Pull request #2653
Why it matters
PHP now has feature parity with other supported languages through struct enums and AutoConfigConsumer support. Server observability capabilities expanded to include log event routing through OpenTelemetry. Security dependency updated.
Changelog entry
- PHP: Added struct enums support to client library Pull request #2640
- PHP: Implemented AutoConfigConsumer for destination configuration Pull request #2649
- Server: Log events now sent to configured OpenTelemetry collector Pull request #2521
- Updated OpenAPI specification and regenerated client libraries Pull request #2646
- Security: Updated rustls dependency (RUSTSEC-2026-0285) Pull request #2645
- Regenerated client libraries for endpoint stats API Pull request #2654
PHP client now supports struct enums and AutoConfigConsumer. Server sends logs to OpenTelemetry collectors. Security update for rustls.
This week we brought PHP client library to feature parity with other languages by adding struct enums support and AutoConfigConsumer. The server now routes log events through OpenTelemetry collectors, giving users complete observability of their webhook infrastructure. We also addressed a security advisory with a rustls update.