Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lib/openai/internal/transport/base_client.rb
Original file line number Diff line number Diff line change
Expand Up @@ -380,7 +380,7 @@ def initialize(
in (400..) | OpenAI::Errors::APIConnectionError
self.class.reap_connection!(status, stream: stream)

delay = retry_delay(response, retry_count: retry_count)
delay = retry_delay(response || {}, retry_count: retry_count)
sleep(delay)

send_request(
Expand Down
8 changes: 7 additions & 1 deletion lib/openai/internal/transport/pooled_net_requester.rb
Original file line number Diff line number Diff line change
Expand Up @@ -123,9 +123,12 @@ def build_request(request, &blk)
def execute(request)
url, deadline = request.fetch_values(:url, :deadline)

req = nil
eof = false
finished = false
closing = nil

# rubocop:disable Metrics/BlockLength
enum = Enumerator.new do |y|
with_pool(url, deadline: deadline) do |conn|
next if finished
Expand Down Expand Up @@ -155,8 +158,11 @@ def execute(request)
end
end
rescue Timeout::Error
raise OpenAI::Errors::APITimeoutError
raise OpenAI::Errors::APITimeoutError.new(url: url, request: req)
rescue StandardError
raise OpenAI::Errors::APIConnectionError.new(url: url, request: req)
end
# rubocop:enable Metrics/BlockLength

conn, _, response = enum.next
body = OpenAI::Internal::Util.fused_enum(enum, external: true) do
Expand Down