Admin API
Every error the Tandem Admin API returns is an
RFC 9457 problem detail, served as
application/problem+json. The type is always a canonical URL under
https://tandem.codingful.com/problems/ — never about:blank.
The kebab-case slug is the stable machine identifier: match on it, not on
title or detail, which are human-readable and may be reworded. A
published slug never changes its meaning; a new problem type gets a new slug.
| Type | Status | Meaning |
|---|---|---|
invalid-parameter |
400 | A query or path parameter, or the request body, could not be parsed. |
replay-no-selector |
400 | Bulk replay was called with no selector — it will not replay everything by default. |
ordering-break-not-acknowledged |
400 | Discard requires acknowledging that skipping an event breaks ordering. |
unauthorized |
401 | Missing or invalid credentials — produced by the host application, not by Tandem. |
not-found |
404 | No such outbox message or relay bucket, or no operation at this path. |
method-not-allowed |
405 | The path does not accept this HTTP method; Allow lists the ones it does. |
not-acceptable |
406 | The Accept header admits nothing the operation returns. |
message-not-replayable |
409 | The message is still in flight; only DONE or FAILED can be replayed. |
message-not-discardable |
409 | Only a FAILED message can be discarded. |
relay-coordination-unsupported |
409 | The operation needs per-bucket state that only LEASE coordination keeps. |
internal-error |
500 | An unexpected failure; the detail is deliberately generic. |