Skip to content

Admin rate limited

FieldValue
Type URIhttps://echo.labstack.com/pro/problems/admin-rate-limited
Codeadmin_rate_limited
HTTP status429
HTTP statusEnglish title
429Too Many Requests

The principal sent more console requests than its rate limit allows. Each principal gets separate default buckets for reads, writes and probes. Reads allow 10 requests per second with burst 30. Writes allow 12 per minute with burst 12. Probes allow six per minute with burst six. Config.RateLimit replaces these buckets. The console also uses this code when Config.Middleware returns HTTP 429.

Wait for the number of seconds in Retry-After, then retry. Reduce automated polling of the console.

If your application installs a custom handler, the body may differ.

HTTP/1.1 429 Too Many Requests
Content-Type: application/problem+json
Cache-Control: no-store
{
"code": "admin_rate_limited",
"detail": "",
"status": 429,
"title": "Too Many Requests",
"type": "https://echo.labstack.com/pro/problems/admin-rate-limited"
}

Reduce automated polling and check Config.RateLimit. Action clients must preserve the action ID when retrying.

  • code (string, always): The stable code above.
  • detail (string, always): The console always sends detail. It is often empty and never contains the underlying error.
  • status (integer, always): The HTTP status of the response.
  • title (string, always): The HTTP status text, such as Conflict, unless the panel supplies its own title.
  • type (string, always): The exact type URI above.

Headers:

  • Cache-Control (always): no-store. The console sends it on every problem response, along with its usual security headers.
  • Retry-After (conditional): Whole seconds, at least 1. Sent when the console’s rate limit, built in or Config.RateLimit, refused the request.

Notes:

  • Fields are written in alphabetical order.
  • The console rewrites every 404 response to admin_not_found with an empty detail.

See the admin console for access checks, action IDs and audit failures.