Skip to content

Commit 980ab0c

Browse files
fix: raise connection error for errors that result from HTTP transports (#120)
1 parent 8049f59 commit 980ab0c

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

lib/openai/internal/transport/base_client.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -380,7 +380,7 @@ def initialize(
380380
in (400..) | OpenAI::Errors::APIConnectionError
381381
self.class.reap_connection!(status, stream: stream)
382382

383-
delay = retry_delay(response, retry_count: retry_count)
383+
delay = retry_delay(response || {}, retry_count: retry_count)
384384
sleep(delay)
385385

386386
send_request(

lib/openai/internal/transport/pooled_net_requester.rb

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,9 +123,12 @@ def build_request(request, &blk)
123123
def execute(request)
124124
url, deadline = request.fetch_values(:url, :deadline)
125125

126+
req = nil
126127
eof = false
127128
finished = false
128129
closing = nil
130+
131+
# rubocop:disable Metrics/BlockLength
129132
enum = Enumerator.new do |y|
130133
with_pool(url, deadline: deadline) do |conn|
131134
next if finished
@@ -155,8 +158,11 @@ def execute(request)
155158
end
156159
end
157160
rescue Timeout::Error
158-
raise OpenAI::Errors::APITimeoutError
161+
raise OpenAI::Errors::APITimeoutError.new(url: url, request: req)
162+
rescue StandardError
163+
raise OpenAI::Errors::APIConnectionError.new(url: url, request: req)
159164
end
165+
# rubocop:enable Metrics/BlockLength
160166

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

0 commit comments

Comments
 (0)