@@ -178,6 +178,47 @@ describe("session.retry.retryable", () => {
178178 expect ( SessionRetry . retryable ( error ) ) . toBeUndefined ( )
179179 } )
180180
181+ test ( "retries 500 errors even when isRetryable is false" , ( ) => {
182+ const error = new MessageV2 . APIError ( {
183+ message : "Internal server error" ,
184+ isRetryable : false ,
185+ statusCode : 500 ,
186+ responseBody : '{"type":"api_error","message":"Internal server error"}' ,
187+ } ) . toObject ( ) as MessageV2 . APIError
188+
189+ expect ( SessionRetry . retryable ( error ) ) . toBe ( "Internal server error" )
190+ } )
191+
192+ test ( "retries 502 bad gateway errors" , ( ) => {
193+ const error = new MessageV2 . APIError ( {
194+ message : "Bad gateway" ,
195+ isRetryable : false ,
196+ statusCode : 502 ,
197+ } ) . toObject ( ) as MessageV2 . APIError
198+
199+ expect ( SessionRetry . retryable ( error ) ) . toBe ( "Bad gateway" )
200+ } )
201+
202+ test ( "retries 503 service unavailable errors" , ( ) => {
203+ const error = new MessageV2 . APIError ( {
204+ message : "Service unavailable" ,
205+ isRetryable : false ,
206+ statusCode : 503 ,
207+ } ) . toObject ( ) as MessageV2 . APIError
208+
209+ expect ( SessionRetry . retryable ( error ) ) . toBe ( "Service unavailable" )
210+ } )
211+
212+ test ( "does not retry 4xx errors when isRetryable is false" , ( ) => {
213+ const error = new MessageV2 . APIError ( {
214+ message : "Bad request" ,
215+ isRetryable : false ,
216+ statusCode : 400 ,
217+ } ) . toObject ( ) as MessageV2 . APIError
218+
219+ expect ( SessionRetry . retryable ( error ) ) . toBeUndefined ( )
220+ } )
221+
181222 test ( "retries ZlibError decompression failures" , ( ) => {
182223 const error = new MessageV2 . APIError ( {
183224 message : "Response decompression failed" ,
0 commit comments