Appearance
Requeue a message for retry
POST /spools/{spool}/nack
Returns the message to its queue for redelivery — the lease names the queue. After the queue's maxRetries redeliveries the message lands in the failure queue instead.
Sample
sh
curl -X POST "$SPOOLER_API/spools/<spool>/nack" \
-H "Authorization: Bearer $SPOOLER_KEY" \
-H "Content-Type: application/json" \
--data '{"lease": "<lease>"}'Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
spool | path | IdentName, 1–64 chars, ^[A-Za-z0-9_:-]+$ | yes | The spool name. |
Request body
Required; application/json.
| Field | Type | Required | Description |
|---|---|---|---|
lease | LeaseToken, 16–128 chars, ^[A-Za-z0-9_-]+$ | yes | Opaque signed lease token (base64url) from a receive or from failures/head. Scoped to the operations of its source: a receive lease settles (ack/nack/renew), a failure lease recovers or discards — never interchangeable. Never inspect or construct one. |
Responses
| Status | Description |
|---|---|
204 | Returned for redelivery (or, past maxRetries, landed in the failure queue). |
400 | The request is malformed; the kind names the problem. |
401 | The API key is missing or not recognized. |
402 | The account is suspended. |
403 | A plan limit refuses the operation; the kind names it. |
404 | The spool or queue does not exist; the kind says which. |
409 | Concurrent state refuses the operation; the kind names it. |
410 | The lease no longer settles anything: expired, already settled, or predates a primary change. |
429 | The per-account request rate cap is exceeded; retry after the Retry-After delay. |
500 | The server failed; kind operation_unconfirmed means the write was accepted but its durability is unknown. |
503 | The spool is momentarily unavailable. |
429 headers
| Header | Description |
|---|---|
Retry-After | Seconds until the next request is admitted. |

