Exception: AgentAdmit::RateLimitError

Inherits:
Error
  • Object
show all
Defined in:
lib/agentadmit.rb

Overview

Raised when the AgentAdmit introspection endpoint returns HTTP 429 and all retry attempts (with exponential backoff + jitter) have been exhausted.

Examples:

begin
  client.verify(token)
rescue AgentAdmit::RateLimitError => e
  render json: { error: 'rate_limited', retry_after: e.retry_after }, status: 429
end

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(message = "AgentAdmit rate limit exceeded. Max retries exhausted.", retry_after: nil, limit: nil, remaining: nil, reset: nil) ⇒ RateLimitError

Returns a new instance of RateLimitError.



37
38
39
40
41
42
43
44
# File 'lib/agentadmit.rb', line 37

def initialize(message = "AgentAdmit rate limit exceeded. Max retries exhausted.",
               retry_after: nil, limit: nil, remaining: nil, reset: nil)
  super(message)
  @retry_after = retry_after
  @limit       = limit
  @remaining   = remaining
  @reset       = reset
end

Instance Attribute Details

#limitInteger? (readonly)

Returns X-RateLimit-Limit value, or nil.

Returns:

  • (Integer, nil)

    X-RateLimit-Limit value, or nil.



31
32
33
# File 'lib/agentadmit.rb', line 31

def limit
  @limit
end

#remainingInteger? (readonly)

Returns X-RateLimit-Remaining value, or nil.

Returns:

  • (Integer, nil)

    X-RateLimit-Remaining value, or nil.



33
34
35
# File 'lib/agentadmit.rb', line 33

def remaining
  @remaining
end

#resetInteger? (readonly)

Returns X-RateLimit-Reset Unix timestamp, or nil.

Returns:

  • (Integer, nil)

    X-RateLimit-Reset Unix timestamp, or nil.



35
36
37
# File 'lib/agentadmit.rb', line 35

def reset
  @reset
end

#retry_afterFloat? (readonly)

Returns Seconds to wait before retrying (Retry-After header), or nil.

Returns:

  • (Float, nil)

    Seconds to wait before retrying (Retry-After header), or nil.



29
30
31
# File 'lib/agentadmit.rb', line 29

def retry_after
  @retry_after
end