OpenAI.Responses.Error exception (OpenAI.Responses v0.6.0)

View Source

Exception module for OpenAI API errors.

This module represents errors that can occur when making requests to the OpenAI API. It includes standard OpenAI error fields as well as HTTP status codes.

Fields

  • :message - Human-readable error description
  • :code - OpenAI error code (e.g., "invalid_api_key")
  • :param - The parameter that caused the error (if applicable)
  • :type - OpenAI error type (e.g., "invalid_request_error")
  • :status - HTTP status code from the response

Examples

iex> error = %OpenAI.Responses.Error{
...>   message: "Rate limit exceeded",
...>   code: "rate_limit_exceeded",
...>   type: "rate_limit_exceeded",
...>   status: 429
...> }
iex> OpenAI.Responses.Error.retryable?(error)
true

Summary

Functions

Determines if an error is retryable.

Functions

from_response(response)

retryable?()

retryable?(arg1)

Determines if an error is retryable.

Returns true if the error is due to temporary server issues that may resolve with retry attempts, such as rate limits, internal server errors, or network timeouts. Returns false for client errors like malformed requests that will not succeed on retry.

Retryable conditions

HTTP status codes

  • 429 - Rate limit or quota exceeded
  • 500 - Internal server error
  • 503 - Service overloaded / Slow down

Transport errors

  • :timeout - Request timeout
  • :closed - Connection closed

Examples

iex> error = %OpenAI.Responses.Error{status: 429}
iex> OpenAI.Responses.Error.retryable?(error)
true

iex> error = %OpenAI.Responses.Error{status: 400}
iex> OpenAI.Responses.Error.retryable?(error)
false

iex> error = %Req.TransportError{reason: :timeout}
iex> OpenAI.Responses.Error.retryable?(error)
true