[ Bug]: ChromeDriver extraction is incomplete in WebdriverIO 9.30.0 on Linux Azure DevOps agents
Have you read the Contributing Guidelines on issues?
- I have read the Contributing Guidelines on issues.
WebdriverIO Version
9.30
Node.js Version
26.9.0
Mode
Standalone Mode
Which capabilities are you using?
{ "browserName": "chrome", "browserVersion": "latest" }
What happened?
What happened?
After upgrading WebdriverIO packages from 9.27.1 to 9.30.0, WebdriverIO fails to start Chrome tests on a Linux Azure DevOps self-hosted agent.
WebdriverIO downloads the correct ChromeDriver ZIP file, but the extraction result is incomplete. The ZIP contains the chromedriver executable, but the extracted cache directory contains only the license and third-party notices files.
WebdriverIO then fails because it detects that the browser cache directory already exists but the ChromeDriver executable is missing.
Downgrading all WebdriverIO packages from 9.30.x back to 9.27.1 resolves the problem without any other environment changes.
Error
All providers failed for chromedriver 133.0.6943.141:
- DefaultProvider: The browser folder (/tmp/chromedriver/linux-133.0.6943.141) exists but the executable (/tmp/chromedriver/linux-133.0.6943.141/chromedriver-linux64/chromedriver) is missing
ChromeDriver ZIP contents
The ZIP file is complete and contains the executable:
Archive: /tmp/chromedriver/133.0.6943.141-chromedriver-linux64.zip
1536 chromedriver-linux64/LICENSE.chromedriver
660113 chromedriver-linux64/THIRD_PARTY_NOTICES.chromedriver
18073400 chromedriver-linux64/chromedriver
**Extracted directory contents after the failure**
/tmp/chromedriver/linux-133.0.6943.141/chromedriver-linux64/
├── LICENSE.chromedriver
└── THIRD_PARTY_NOTICES.chromedriver
Expected but missing:
/tmp/chromedriver/linux-133.0.6943.141/chromedriver-linux64/chromedriver
### What is your expected behavior?
WebdriverIO should extract the chromedriver executable from the downloaded ZIP and start the test session.
If extraction is incomplete, WebdriverIO should remove the incomplete cache directory and retry the download/extraction rather than failing permanently because the cache directory exists.
### How to reproduce the bug.
Actual behavior
The cache directory is created, the executable is missing, and WebdriverIO fails without recovering.
Environment
OS: Linux
CI: Azure DevOps self-hosted agent
Browser: Google Chrome 133.0.6943.141
ChromeDriver: 133.0.6943.141
WebdriverIO 9.30.0: fails
WebdriverIO 9.27.1: works
Node.js: <add the exact Node version from the failing build>
Package responsible in stack trace: @wdio/utils
**Regression details**
**Working versions:**
@wdio/cli: 9.27.1
@wdio/local-runner: 9.27.1
@wdio/utils: 9.27.1
webdriverio: 9.27.1
**Failing versions:**
@wdio/cli: 9.30.0
@wdio/local-runner: 9.30.0
@wdio/utils: 9.30.0
webdriverio: 9.30.0
### Relevant log output
```typescript
[test:execute-product-60454] > [email protected] test:execute-product-60454
[test:execute-product-60454] > wdio run ./wdio.conf.ts --suite productTestsSystemAccess
[test:execute-product-60454]
[test:execute-product-60454] (node:84311) [DEP0205] DeprecationWarning: `module.register()` is deprecated. Use `module.registerHooks()` instead.
[test:execute-product-60454] (Use `node --trace-deprecation ...` to show where the warning was created)
[test:execute-product-60454]
[test:execute-product-60454] Execution of 16 workers started at 2026-09-16T09:59:57.088Z
[test:execute-product-60454]
[test:execute-product-60454]
[test:execute-product-60454]
[test:execute-product-60454] Ended WebDriver sessions gracefully after a SIGINT signal was received!Code of Conduct
- I agree to follow this project's Code of Conduct
Is there an existing issue for this?
- I have searched the existing issues
Source: webdriverio/webdriverio