@@ -93,15 +93,23 @@ def follow_redirect(request, status:, response_headers:)
93
93
URI . join ( url , response_headers [ "location" ] )
94
94
rescue ArgumentError
95
95
message = "Server responded with status #{ status } but no valid location header."
96
- raise OpenAI ::Errors ::APIConnectionError . new ( url : url , message : message )
96
+ raise OpenAI ::Errors ::APIConnectionError . new (
97
+ url : url ,
98
+ response : response_headers ,
99
+ message : message
100
+ )
97
101
end
98
102
99
103
request = { **request , url : location }
100
104
101
105
case [ url . scheme , location . scheme ]
102
106
in [ "https" , "http" ]
103
107
message = "Tried to redirect to a insecure URL"
104
- raise OpenAI ::Errors ::APIConnectionError . new ( url : url , message : message )
108
+ raise OpenAI ::Errors ::APIConnectionError . new (
109
+ url : url ,
110
+ response : response_headers ,
111
+ message : message
112
+ )
105
113
else
106
114
nil
107
115
end
@@ -350,7 +358,7 @@ def initialize(
350
358
self . class . reap_connection! ( status , stream : stream )
351
359
352
360
message = "Failed to complete the request within #{ self . class ::MAX_REDIRECTS } redirects."
353
- raise OpenAI ::Errors ::APIConnectionError . new ( url : url , message : message )
361
+ raise OpenAI ::Errors ::APIConnectionError . new ( url : url , response : response , message : message )
354
362
in 300 ..399
355
363
self . class . reap_connection! ( status , stream : stream )
356
364
0 commit comments