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 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. |
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. |