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.



146
147
148
149
150
151
152
153
# File 'lib/agentadmit.rb', line 146

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

#limit ⇒ Integer? (readonly)

Returns X-RateLimit-Limit value, or nil.

Returns:

  • (Integer, nil) —

    X-RateLimit-Limit value, or nil.



140
141
142
# File 'lib/agentadmit.rb', line 140

def limit
  @limit
end

#remaining ⇒ Integer? (readonly)

Returns X-RateLimit-Remaining value, or nil.

Returns:

  • (Integer, nil) —

    X-RateLimit-Remaining value, or nil.



142
143
144
# File 'lib/agentadmit.rb', line 142

def remaining
  @remaining
end

#reset ⇒ Integer? (readonly)

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

Returns:

  • (Integer, nil) —

    X-RateLimit-Reset Unix timestamp, or nil.



144
145
146
# File 'lib/agentadmit.rb', line 144

def reset
  @reset
end

#retry_after ⇒ Float? (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.



138
139
140
# File 'lib/agentadmit.rb', line 138

def retry_after
  @retry_after
end