When something fails, Quavern shows you a support code such as APIE1-0429. The code is not a random reference number: every part of it carries meaning, and it never changes meaning once published. Quote it and support knows the exact condition you hit, without a round of questions.
The shape
PPPPX-YYYY
PPPP — four capital letters. Which part of Quavern owns the failure.
X — one digit. The class: what kind of thing went wrong, and therefore who can do something about it.
YYYY — four digits. A stable identifier.
0ZZZmirrors a generic HTTP status.1000to9999identify one specific condition and nothing else.
The real HTTP status always stays in the response itself. For codes numbered 1000 and above, the four digits are an identifier, not a status — do not read one out of them.
The four letters
Prefix | What it owns | The page for it |
| Generic API, validation and shared resources | APIE support codes |
| E-mail verification and delivery | MAIL support codes |
| Marl chat, files and the upstream model | MARL support codes |
| QuavernOS contracts and compatibility | QUOS support codes |
| Quavblok account linking and server routes | QVBK support codes |
| Quavsit transit API, upstream data and quotas | QVST support codes |
| Authentication, authorisation, security and blocks | SCTY support codes |
| Stripe and billing | STRP support codes |
A new prefix is always exactly four capital ASCII letters, always has a documented owner, and never reuses an existing code.
The class digit
The digit after the letters describes the cause, not the HTTP status. An ordinary rate limit is APIE1-0429; an exhausted daily quota is APIE1-1429. Both are HTTP 429, and they are not the same problem.
Digit | Class | What it means for you |
| Genuinely unknown or unclassified | Quavern has not managed to classify this failure. Send support the code, the time with its time zone, and what you were doing. |
| Your request or your action | Check what you sent and the state of the account: the request itself, a quota, or the object it names. Correcting that and trying again is normally the whole fix. |
| Quavern's server or one of its dependencies | Nothing you did caused it. Wait a moment and try again. If it keeps happening, send support the code and the time — that is what lets the incident be found in the logs. |
| Authentication, authorisation or security | Sign in again, or ask whoever administers your organisation for the access this needs. Support will never work around an access control on your behalf. |
| An automated security or anti-abuse block | An automated protection stopped the request. Support cannot lift it on the spot; describe what you were doing and it will be put in front of the security team. |
| A block or ban decided by a person | A person at Quavern took this decision. Write to support: only a review can change it, and no automatic retry will. |
| Declared maintenance | Quavern is inside a maintenance window it announced. Check https://status.quavern.net and try again once the window closes. |
| Stopped, moved, or an update is required | What you called has stopped, moved, or needs a newer version. Follow the migration or update notice rather than retrying. |
| Incompatible device or network | Your device, browser, network or proxy is not one this endpoint accepts. Note all four and tell support — never send a secret with them. |
| An indeterminate incident inside a known service | A service Quavern knows about failed in a way it could not classify. Keep the code and the time and send them to support. |
Where you see it
An API error looks like this, and the code is in error.code:
{
"error": {
"code": "APIE1-0429",
"reason": "rate_limited",
"message": "Too many requests. Try again later.",
"details": {}
}
}
code and reason are both stable contracts you may build on. message is a technical explanation for a human reading logs — never translate from it or branch on it.
What Quavern promises about a code
A code never changes meaning after it is published.
Two different conditions never share a code.
A new condition is added to the registry and covered by a test.
A condition that is withdrawn stays documented as retired, and its code is never reused. A ticket quoting a code from last year still resolves to what it meant then.
What to send support
the code and the
reasonbeside itthe HTTP status of the response
the time, with its time zone
the route and the method you called
the product and its version
how to make it happen again — with no secret in it
Write to [email protected]. Quavern support will never ask you for a password, a bearer token, an API key, or full payment card details. If a message claiming to be from Quavern asks for any of those, it is not from Quavern.
Service status: https://status.quavern.net.
Quavern help reference: quavern-support-codes/en
