File tree Expand file tree Collapse file tree 1 file changed +7
-0
lines changed
Expand file tree Collapse file tree 1 file changed +7
-0
lines changed Original file line number Diff line number Diff line change @@ -374,6 +374,13 @@ export class Stainless {
374374 if ( isAbortError ( response ) ) {
375375 throw new Errors . APIConnectionTimeoutError ( ) ;
376376 }
377+ // detect native connection timeout errors
378+ // deno throws "TypeError: error sending request for url (https://example/): client error (Connect): tcp connect error: Operation timed out (os error 60): Operation timed out (os error 60)"
379+ // undici throws "TypeError: fetch failed" with cause "ConnectTimeoutError: Connect Timeout Error (attempted address: example:443, timeout: 1ms)"
380+ // others do not provide enough information to distinguish timeouts from other connection errors
381+ if ( / t i m e d ? ? o u t / i. test ( String ( response ) + ( 'cause' in response ? String ( response . cause ) : '' ) ) ) {
382+ throw new Errors . APIConnectionTimeoutError ( ) ;
383+ }
377384 throw new Errors . APIConnectionError ( { cause : response } ) ;
378385 }
379386
You can’t perform that action at this time.
0 commit comments