SeleniumHQ/selenium · error · anyhow::Error
{}{} not available for download
Error message
{}{} not available for download What it means
Produced by throw_error_message() with the UNAVAILABLE_DOWNLOAD_ERR_MSG constant ("{}{} not available for download"). Placeholder one is the browser name, placeholder two the version label; the versions URL is appended. Raised via unavailable_download() (lib.rs:1338) when the requested driver/browser version has no downloadable artifact.
Source
Thrown at rust/src/lib.rs:1367
where
Self: Sized,
{
let browser_version = self.get_browser_version();
let browser_version_label = if browser_version.is_empty() {
"".to_string()
} else {
format!(" {}", browser_version)
};
let mut message = format_two_args(
error_message,
self.get_browser_name(),
&browser_version_label,
);
let versions_url = self.get_browser_versions_url();
if !versions_url.is_empty() {
message = format!("{}. Check available versions at {}", message, versions_url);
}
Err(anyhow!(message))
}
// ----------------------------------------------------------
// Getters and setters for configuration parameters
// ----------------------------------------------------------
fn get_os(&self) -> &str {
self.get_config().os.as_str()
}
fn set_os(&mut self, os: String) {
if !os.is_empty() {
self.get_config_mut().os = os;
}
}
fn get_arch(&self) -> &str {
self.get_config().arch.as_str()View on GitHub (pinned to aa36b38e69)
Solutions
- Check the appended versions URL and select a version with an artifact for your OS/arch.
- Switch to the latest version (omit the pin) which is always mirrored.
- Verify the OS and architecture Selenium Manager detected (use --os / --arch explicitly if misdetect).
Example fix
# before selenium-manager --browser edge --browser-version 117 --os mac --arch arm64 # no artifact # after selenium-manager --browser edge --browser-version 118 --os mac --arch arm64
Defensive patterns
Strategy: validation
Validate before calling
// Confirm a downloadable artifact exists for the (version, os, arch) tuple
let artifacts = list_downloadable_artifacts(browser, &version, os, arch)?;
if artifacts.is_empty() {
return Err(anyhow!("no downloadable artifact for {browser} {version} on {os}/{arch}"));
} Prevention
- Use the latest version (omit the pin) which always has artifacts.
- Ensure the detected --os and --arch match a published artifact.
- Keep a known-good version pinned in config that you have verified is downloadable.
When it happens
Trigger: unavailable_download() is invoked when the download step cannot find an artifact for the resolved browser+version, and the versions URL is appended to the message by throw_error_message.
Common situations: A version that exists in discovery metadata but has no downloadable binary for the platform; arch mismatch (e.g. requesting a build that lacks an ARM64 artifact); version withdrawn from the CDN.
Related errors
- Unsuccessful response ({}) for URL {}
- Error parsing JSON from URL {} {}
- Format for file {} cannot be inferred
- Wrong browser/driver version
- Downloaded file cannot be uncompressed ({} extension)
AI-assisted analysis of SeleniumHQ/selenium@aa36b38e69 (2026-08-14).
Data as JSON: /api/errors/7c36ce948a6cafaa.
Report an issue: GitHub.