unstale

npm / svix

svix

What changed in svix 2, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-28.

3 breaking1 security2 new APIs and options2 behavior and defaults8 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.9 on npm

svix 216 changes

Breaking changes 3

  • For 4xx responses with non-JSON bodies, the JavaScript library throws ApiException with the raw response text as body instead of throwing SyntaxError.

    2.9.1release notes

  • Go, Java, Kotlin, PHP, and Ruby default to a 15-second request timeout, matching the other SDKs.

    2.9.0release notes

  • JavaScript requests now time out after 15 seconds by default; previously there was no timeout unless requestTimeout was set.

    2.9.0release notes

Security 1

  • The CLI Docker image was rebuilt for CVE-2026-111497.

    2.9.1release notes

New APIs and options 2

  • Advanced Destinations add ElasticSearch support through the latest Svix Cloud API.

    2.9.0release notes

  • CLI commands can populate a request body from a file using cURL-style @filename syntax.

    2.8.0release notes

Behavior and default changes 2

  • Python retries on HTTP 423 responses and I/O errors.

    2.9.0release notes

  • C#, Go, Java, JavaScript, Kotlin, PHP, Ruby, and Rust retry requests that fail due to timeouts or other network errors, not just 5xx responses.

    2.9.0release notes

Fixes and other changes 8

  • The Go default retry schedule uses 50ms, 100ms, and 200ms instead of 50µs, 100µs, and 200µs.

    2.9.0release notes

  • Java and Kotlin libraries strip trailing slashes from server URLs.

    2.9.0release notes

  • PHP reuses the same svix-req-id across retries of a request.

    2.9.0release notes

  • PHP sends the svix-retry-count header on retries.

    2.9.0release notes

  • C# Async methods honor cancellation duration while waiting to retry by using Task.Delay instead of Thread.Sleep.

    2.8.0release notes

  • The Ruby method now accepts raw key bytes instead of base64 encoded bytes.

    2.8.0release notes

  • The Go method now uses a value receiver, consistent with other methods, so it works as expected.

    2.8.0release notes

  • The Go method now allows passing nil for options.

    2.8.0release notes