diff --git a/packages/webdriver/src/request/index.ts b/packages/webdriver/src/request/index.ts index 561336caba8..dd5bb292e1a 100644 --- a/packages/webdriver/src/request/index.ts +++ b/packages/webdriver/src/request/index.ts @@ -27,6 +27,7 @@ export class RequestLibError extends Error { statusCode?: number body?: unknown code?: string + event?: string } export const COMMANDS_WITHOUT_RETRY = [ @@ -219,6 +220,13 @@ export default abstract class WebDriverRequest extends EventEmitter { if ((response as RequestLibError).code === 'ETIMEDOUT') { const error = getTimeoutError(response, fullRequestOptions) + if ((response as RequestLibError).event === 'response') { + log.debug('Request timed out waiting for server response - not retrying') + this.emit('response', { error }) + this.emit('performance', { request: fullRequestOptions, durationMillisecond, success: false, error, retryCount }) + throw error + } + return retry(error, 'Request timed out! Consider increasing the "connectionRetryTimeout" option.') }