Limit
Too many requests, or an allowance used up. 429.
Intents
Raising one
Name what went wrong. The intent sets the status, the message the caller sees, and any log it writes.
// Too many requests in a short time; the caller should wait
return fail('limit.rate', undefined, { retryAfter: 30 });HTTP 429
Retry-After: 30
{
"ok": false,
"error": "Too many requests. Try again shortly.",
"code": "limit.rate"
}{
"intent": "security.limited",
"level": "warn",
"alert": false,
"message": "Too many requests. Try again shortly.",
"data": {
"intent": "limit.rate"
},
"time": "2026-10-09T12:00:00.000Z"
}Is it a limit error?
Find the row that describes your case, and use the domain on the right.
If the problem is
Use
The caller’s request was wrong: unreadable, incomplete, or a value that breaks a rule. 400 or 422.
request.*No valid credentials: nobody signed in, an expired session, a bad token or secret. 401.
auth.*Valid credentials, but not allowed to do this. 403.
permission.*The thing asked for is not there, as far as the caller may know. 404.
record.*The request clashes with the current state: it already exists, or it is not possible yet. 409.
conflict.*Too many requests, or an allowance used up. 429.
limit.*this pageOur fault or a dependency’s. The caller sees a generic message; the details are logged. 5xx.
failure.*