limit.rate

Too many requests in a short time; the caller should wait

Profile

Raised with

Status

429

Message

yours

Retryable

yes

Example

TS
return fail('limit.rate', undefined, { retryAfter: 30 });
The caller gets
Terminal
HTTP 429
Retry-After: 30

{
"ok": false,
"error": "Too many requests. Try again shortly.",
"code": "limit.rate"
}
And it writes security.limited
TS
{
"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"
}

Choosing between neighbours

Find the row that describes your case, and use the intent on the right.

  • If it is

    Use

  • Too many requests in a short time; the caller should wait

    limit.rate this page

Connections

Declared in the registry, both directions. Where an intent is used in your own code is something check and the gallery see; this site has no app code.

For registry authors

Starter intents. These are the intents prongs add errors puts in your registry, raised with fail(). Change the messages to suit your app, and the statuses through the status.* intents they are built from.

The entry prongs add errors writes into your registry. Change the message here, or the status through its status.* ref.

TS
'limit.rate': {
kind: 'semantic',
description: 'Too many requests in a short time; the caller should wait',
refs: ['status.toomany'],
keywords: ['rate', 'throttle', 'too many'],
binding: {
publicMessage: 'Too many requests. Try again shortly.',
retryable: true,
logs: 'security.limited',
},
},