tailthemesbuy this theme · $39
Skip to content
halyard
Sections menu
Changelog menu

Changelog

Halyard release notes

Every change to the API, with the version you pin against and the date it shipped.

Updated 13 August 2026API v2.4.11 breaking change since v1.9

Note

The base URL carries the HTTP surface and has been /v1 since launch; the release number below is the service running behind it. A change that removes a shape gets an overlap window and appears here as breaking.

7 of 7 releases · 18 changes

v2.4.1

13 August 2026

current

fixed
The rate-limit headers were omitted from 204 responses. Acknowledge and queue delete now carry X-RateLimit-Remaining and X-RateLimit-Reset like every other call.
fixed
Extending an expired lease answered 200 with a stale expiry. It answers 409 lease_expired, and the message is already back in the queue.
changed
The error body dropped a request id field that was never populated. An error carries a stable code and a human message, and nothing else.

v2.4.0

30 July 2026

added
Extend a lease. One call per half-timeout keeps long work in hand instead of racing the visibility timeout, and the extension is added to the current expiry rather than to now.
added
Return work early with nack, and an optional retry_after that overrides the doubling backoff once.
changed
The acknowledge ceiling rose from 1,000 to 5,000 calls a second, matched to the publish burst so an ack never becomes the bottleneck.

Endpoints added

PATCH/queues/{queue}/leases/{lease}200
POST/queues/{queue}/leases/{lease}/nack204

v2.3.2

12 June 2026

fixed
Idempotency keys were forgotten after six hours instead of the documented 24, so a publish retried the next morning enqueued a second copy.
fixed
A queue deleted with a lease open left that lease answering 200. In-flight consumers now get 404 on the next ack, which is what the reference always said.

v2.3.0

21 May 2026

added
Dead letters, with the delivery history that got a message there, and replay to move it back with delivery_count reset and the ordering key preserved.
changed
max_deliveries defaults to 5, up from 3. Queues created before this release kept their own value.
fixed
A message that exhausted its deliveries during a region failover could be redelivered once more. It dead-letters on the fifth attempt.

Endpoints added

GET/queues/{queue}/dead-letters200
POST/queues/{queue}/dead-letters/replay202

v2.2.0

4 March 2026

added
ordering_key on publish. Messages sharing a key are delivered in publish order, and different keys run in parallel, so one slow customer never blocks another.
added
ap-south joins eu-west, us-east and us-west. A queue’s region is fixed after creation.
changed
Long polling holds a lease call open for up to 20 seconds, up from 5. Idle consumers cost nothing extra.

v2.0.0

14 October 2025

breaking
Leases replaced receipts. A lease call returns one lease id for the whole batch, and ack and nack take that lease instead of a per-message receipt. Both shapes were accepted for 90 days; receipts were switched off on this date.
changed
visibility_timeout is a queue setting a consumer overrides per lease, instead of a value carried on every message.
the ack that changed

# v1.9: the ack named the message, one call per message
curl "$API/queues/orders/messages/msg_01HQ8Z3F/ack" -X POST

# v2.0: the ack names the lease, and closes the whole batch
curl "$API/queues/orders/leases/lse_01HQ8Z/ack" -X POST

v1.9.0

3 June 2025

deprecated
The v1 line is closed to features. It takes security fixes until 1 June 2027, and the documentation stays online after that.
added
X-RateLimit-Remaining and X-RateLimit-Reset, backported from the v2 line so a consumer can read its headroom on either.