class RubyLLM::Error
Error is the base class for provider-operation errors raised by RubyLLM, including API, network, capability, and provider response-shape failures. When an HTTP response is available, it wraps that response and normalizes the message across providers. Subclasses map common HTTP status codes: BadRequestError (400), UnauthorizedError (401), PaymentRequiredError (402), ForbiddenError (403), RateLimitError (429), ServerError (500), ServiceUnavailableError (502 to 504), and OverloadedError (529).
begin RubyLLM.chat.ask "Translate 'hello' to French." rescue RubyLLM::RateLimitError puts "Rate limit hit. Please wait a moment." rescue RubyLLM::Error => e puts "API error: #{e.message}" puts e.response&.status end
Local setup and programming errors, such as ConfigurationError and ModelNotFoundError, inherit from StandardError directly and are not caught by rescuing Error.
Attributes
The HTTP response that caused the error, or nil when none is available. Its status and body carry the providerโs reply.
Public Class Methods
# File lib/ruby_llm/error.rb, line 36 def initialize(message = nil, response: nil) @response = response super(message || response&.body || self.class.default_message) end
Creates an error with message. Pass response: to attach the HTTP response; its body supplies the message when message is nil.